SSH 設定ファイルの所有者または権限が不正です

SSH 設定ファイルの所有者または権限が不正です

の 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 の所有者または権限が不正です

PuttyWindows 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>

関連情報