
私は Ubuntu デスクトップを使用しており、Linux サーバーの SSH 秘密キーである PEM ファイル ( ) を受け取りましたmykey.pem
。この PEM ファイルをローカル マシンのどこに配置する必要があるか、またそれを「SSH 既知のホスト」にどのように構成/追加できるかを知りたいと考えています。
このテーマについてグーグルで検索すると、たくさんの回答や記事が出てきます。作成SSH キーですが、既存のキーを既知のホストに追加するためのものではありません。アイデアはありますか?
答え1
SSH キーの種類についてはよくわかりません。ただし、宛先のコンピューターには秘密キーではなく公開キーを配置します。秘密キーは非公開のままです。
また、ソース コンピュータの公開キーを宛先コンピュータに配置する必要があります。~/.ssh/authorized_keys
これは、手動またはコマンドを使用して実行できますssh-keygen
。
ソースコンピュータの公開キーに対してcatを実行し、宛先コンピュータのauthorized_keysに対してcatを実行し、ソースのキーがauthorized_keysのキーと同じ形式であることを確認することをお勧めします。
known_hosts ファイルは自動的に追加されるファイルです。手動で編集する必要はありません。known_hosts ファイルを削除した後でも接続できます。
編集-
コメントの一部を回答に取り入れます。公開鍵は秘密鍵から来ます。通常、秘密鍵は秘密のままですが、OP には秘密鍵が与えられていました。これは珍しいことですが、これは興味深い方法です。なぜなら、dest コンピュータがすでに公開鍵を持っていることになるからです。そのため、dest コンピュータの authorized_keys に何も追加せずにログインできます。ssh -i は常に秘密鍵を取得します。OP はssh -i path/to/privatekeyfile user@dest
「openstack」というクラウド サービスを使用しており、openstack のサイトには docs.openstack.org/user-guide/content/ssh-into-instance.html と記載されています。したがって、秘密鍵ファイルの名前が何であれ、どこに保存されていても、次の操作を行うときにそれを指定します。$ ssh -i MyKey.pem [email protected]
ssh -i
答え2
マニュアルによるとssh
:
-i アイデンティティファイル
公開鍵認証の ID (秘密鍵) を読み取るファイルを選択します。プロトコル バージョン 1 のデフォルトは ~/.ssh/identity、プロトコル バージョン 2 のデフォルトは ~/.ssh/id_dsa、~/.ssh/id_ecdsa、~/.ssh/id_ed25519、~/.ssh/id_rsa です。
例:$ ssh -i mykey.pem [email protected]
認証エージェントにキーを追加して、リモート サーバーに接続するたびに ID ファイルを渡す必要がなくなるようにすることもできます。
ssh-add — OpenSSH認証エージェントに秘密鍵IDを追加します
例えば、$ ssh-add mykey.pem
を実行するだけです。$ ssh [email protected]