
の Web サーバーに接続できなくなっていることに気づきました。昨日、次の設定を追加して、x.x.202.50
次の ssh 構成ファイルを変更しました。/share/homes/admin/.ssh/config
# ssh (secure shell) configuration file
Host webserver
HostName x.x.212.50
User user1
IdentityFile ~/.ssh/id_rsa `
これを行った理由は、同期目的でキー ログインを有効にするためです ( を使用Unison
)。
現在、サーバーに接続しようとすると、次のエラーが表示されます。
/share/homes/admin/.ssh/config の所有者または権限が不正です
Putty
Windows 10 から、および Linux サーバーから別の Linux サーバーへの接続を行います。
私はプロジェクトに関わっているのでサーバーに接続する必要がありますが、その方法がわかりません。誰かこれを行う方法を知っていますか?
答え1
.ssh ディレクトリの権限を変更する必要があります。以下を実行します (600 だけでは修正されないことがわかりました)。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
答え2
セキュリティに影響を与える可能性のあるファイル (秘密鍵、構成ファイル、承認済みキー) に関する一般的なルールは、所有者以外のユーザーが書き込みできないようにすることです (秘密鍵にはアクセスできないようにする必要があります)。
エラーはOpenSSHコード下に:
if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
(sb.st_mode & 022) != 0))
fatal("Bad owner or permissions on %s", filename);
これを英語に翻訳すると、設定ファイルは root または実行しているユーザーが所有する必要がありssh
、どのグループまたは他のユーザーも書き込みできないことを意味します。
コメントで既に指摘されているように、おそらく何らかの方法でこの権限を誰かに与えてしまったので、これらの権限を削除すると問題は解決するはずです。
chmod go-w /share/homes/admin/.ssh/config
答え3
ルート アカウントと同じ '.ssh' ディレクトリを共有する単一ユーザーの Linux マシンがあります。/root/.ssh は、ユーザーの '/home/username/.ssh' フォルダーを指すシンボリック リンクです。
私は最近 ~/.ssh/config ファイルを追加したばかりですが、これが原因で、ルート アカウントから SSH および SSHFS を呼び出すときに SSH からエラー メッセージが表示されました。私の場合の解決策は、次のとおりです。
chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config
ただし、ファイルを編集する必要がある場合、ファイルの権限と所有権を変更し、元に戻す必要があるため、これは少し問題になります。ただし、これはアカウント間でフォルダーを共有することを選択したため、私自身の問題です。ルート ユーザー アカウントを使用して 'sshfs' または 'ssh' コマンドを呼び出す場合にのみ権限を反転するシェル スクリプトをいくつか作成しました。
答え4
他の回答は、権限が間違っている場合にのみ問題を解決します。ただし、私の場合、問題はファイル所有者が間違っていたことです。ls -l ~/.ssh
権限と所有者に関する情報を表示するには、次のコマンドを実行します。ファイル所有者は 3 番目の列に表示されます。間違っている場合は、次のコマンドを実行します。
chown <newOwner> <fileName>