2つの異なるホストに2つのシェルアカウントがあります。
- シェルA:シェルSSHキーを使用してログインしたい(server-A.com)
- シェルB:Aへのログインに使用するシェル。パスワードは必要ありませんが、SSHキーを使用してください(server-B.com)。
私はserver-A.comシステム管理者に電子メールを送り、彼は私に次のチュートリアルURLを提供しました。
私は次のことをしました。
- server-A.comで秘密鍵/公開鍵SSH鍵生成を使用し、秘密鍵をserver-B.comに配置します。
ssh-keygen -t rsa -C [email protected]
~/.ssh/server-B.com
- 走って
chmod 700 ~/.ssh/
行ったchmod 600 ~/.ssh/server-B.com
server-A.com公開鍵を
~/.ssh/authorized_keys
server-B.comに追加しました。$ cat ~/.ssh/server-B.com.pub >> ~/.ssh/authorized_keys # on server-B.com
確認しました
~/.ssh/config
(いいえ)、/etc/ssh/ssh_config
次の内容が含まれています(他の#comment行は印刷されません)# PasswordAuthentication yes SendEnv LANG LC_* HashKnownHosts yes GSSAPIAuthentication yes
シェルBから:
$ ssh-keygen -f "/home/username/.ssh/known_hosts" -R server-A.com
メモ:私はチュートリアルに従いました。https://kb.iu.edu/d/aewsそしてhttps://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/create-with-openssh/。
何が間違っていますか?
ベストアンサー1
B
ログインするには秘密鍵だけが必要ですA
。リモートシステムA
でキーを生成しないでください。リモートシステムは、あなたの個人的なアイデンティティを知る必要はありません。
A
からシステムにログインしようとしていますB
。これは意味する~/.ssh/authorized_keys
A
システムに公開鍵を含める必要があります(入力できるように)。システムはB
ログインにローカルでこのファイルを必要としませんA
。
~/.ssh
両方のホストに対する権限が700
あり、その中にあるファイルに対する600
権限(含まれている~/.ssh/authorized_keys
)A
があることを確認する必要があります。
しかも実際には使用~/.ssh/server-B.com
B
ファイルにキーを書き込むには、以下をA
使用する必要がありますssh
。
ssh -i ~/.ssh/server-B.com [email protected]
またはssh-agent
キーを実行して追加します。
eval "$( ssh-agent )"
ssh-add ~/.ssh/server-B.com
ssh [email protected]
または、システムに次の~/.ssh/config
項目を追加します。B
A
Host A
User a-user
Hostname server-A.com
IdentityFile %d/.ssh/server-B.com
その後、使用
ssh A
ただ使用することもできます基本既に別の秘密鍵がある場合を除き、鍵ファイルの名前です。