まず、ここと他のサイトに同様の質問がたくさんあることを知っています。私はそれらを疲れていると確信していますが、この問題を修正する必要があるため間違っていることが証明されてうれしいです。
rootユーザーが公開鍵を介してSSH経由でアクセスできるCentOSサーバーがあります。制限されたアクセス権を持つ別のユーザーを作成しました(remote_userと呼びます)。この作業の一環として、私のコンピュータの他の場所にホームディレクトリを設定しました。
Remote_userとして〜/にCDをコピーし、.ssh/と.ssh/authorized_keysを作成しました。 Authorized_keysに公開鍵を追加しました(この同じ公開鍵がルートのAuthorized_keysに存在し、機能します)。 ~/ および ~/.ssh の権限が 700 に設定され、 ~/.ssh/authorized_keys の権限が 600 に設定されていることを確認しました。これらすべてのファイルがRemote_userの所有であることを確認しました。
restorecon -R -v ~/.ssh/authorized_keys
SELinuxに関して、私はそれを許可(一時)に設定し、remote_user / .sshファイルとremote_user / .ssh / authorized_keysファイルがそのルートファイルと同じセキュリティコンテキストを持っていることを確認しようとしls -Z
ました。chcon
/etc/ssh/ssh_configの内容は次のとおりです。
Host *
GSSAPIAuthentication yes
ForwardX11Trusted yes
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
しかし、まだサイコロはありません。パテを使用してサーバーに接続し、ユーザー名のルートを入力すると、私のPaegantキーがアクセスを許可します。ユーザー名を remote_user と入力すると、すぐにパスワードの入力を求められます。パスワードを使用すると、問題なく接続できます。また、sshサーバーを使用して、同じ結果で別のサーバーからsshを配信しようとしました。
それでは、私が何を見逃しているのでしょうか?
答え1
これはすべてそうです...あなたが言及していない唯一のことは、接続したいコンピュータに秘密鍵があることです。必要な場所に保存されていない可能性があります(~/.ssh/id_rsa
例:)。そうでない場合は、以下を使用して接続する必要があります。
ssh -i <path to identity file> <username>@<hostname>
また、実際に必要で実行中の作業を知る必要がない場合は、IDを「手動で」コピーせずにsshコマンドを使用することをお勧めします。
ssh-keygen
ssh-copy-id <username>@<hostname>
それはすべてです。これにより、最初に新しいIDファイルが作成され、次にホストにコピーされます。もちろん、すでにIDファイルがどこかにある場合は、-i <path to identity file>
ssh-copy-idでフラグを使用することもできます。
編集:私はPuttyと接続していると言われていることを確認しました。これは少し異なります。 PuttyにはPuTTYキージェネレータと呼ばれる独自のメカニズムがあります。
秘密鍵と公開鍵を生成して保存します。秘密鍵は前の例ではクライアントシステムに保持されているid_rsa、公開鍵はid_rsa.pubであり、サーバーシステムの~/.ssh/authorized_keysにコピーする必要があります。 。
これを完了したら、[接続/ SSH /認証]タブで使用しているセッションの秘密鍵を追加する必要があります。