ssh-keygen は root に対してのみ機能しますか?

ssh-keygen は root に対してのみ機能しますか?

ssh-keygen -t rsa は、root ユーザーのみに設定した場合に機能しますか?

つまり、ローカル システムのユーザー名が salt で、上記のコマンドを使用してキーを生成し、リモート システムでキーを /root/.ssh authorized_keys に配置すると、これは機能します。

しかし、リモートシステムでは、キーが/home/natrium/.ssh authorized_keysに置かれている場合

それでもパスワードの入力を求められます。これは想定内の動作でしょうか、それとも上記の手順に何か間違いがあるのでしょうか。

ありがとう..

答え1

リモート システムの権限を確認します。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

ディストリビューションにインストールできるツールがあります (ubuntu/debian にはあります)。ssh コピー IDこれは次のことを実行します:

$ ssh-copy-id <remote>

それでも問題が解決しない場合は、オプション「-v」を指定して ssh を実行し、より詳細なメッセージを確認してください。

ロングバージョン:

#From client to server
client$ scp ~/.ssh/id_rsa.pub remote_server.org:

# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

答え2

~sodium/.ssh/authorized_keys から / までの権限をチェックします。これらのいずれかが世界的に書き込み可能な場合、ssh キーは信頼されません。

キーを必要とするユーザーとして ssh-keygen を実行します。接続先のシステムで実行する必要があります。

ssh-copy-id は、ターゲット マシンからキーを使用するマシンに ID をコピーします。

答え3

これを試して:

ssh -v [email protected]

として remote4 システムにログインしようとしているsodiumが、 のキーをインストールした可能性がありますnatrium

答え4

キーを生成する場所は重要ではありませんが、キーを保存する場所は重要です。

あるマシンから別のマシンに SSH で接続する場合、秘密鍵は id_rsa として SSH 接続するアカウントの .ssh フォルダに保存されている必要があり、公開鍵は SSH 接続先のアカウントの .ssh/authorized_keys ファイルに保存されている必要があります。鍵はマシン用ではなくユーザー用です。そのため、鍵をインストールするアカウントによって大きな違いが生じます。

他に留意すべき点は、使用している SSH のバージョンです。私の理解では、SSH2 の場合、キーは .ssh/authorized_keys2 にあるはずです。

最後に、実際に何が起こっているかを確認するには、Lexsys の指示に従い、-v フラグを使用して詳細モードで ssh を実行するのが最善です。

関連情報