私はサーバーにログインするために(ssh-keygenを使用して)id_rsaというキーを作成したので、私の.sshディレクトリにid_rsa.pubとid_rsaがあります。
この名前を使用する理由は、別の名前を使用しようとすると私のサーバーでは機能しないためです(何らかの理由でログインできません)。
今日は新しいサーバーを設定し、別のコンピュータからキーを生成しました。しかし、キー名もid_rsaです。
それでは、まだ使用しているid_rsaというキーが既にある私のMacbook Pro(OSX)で同じキーをどのように使用できますか(他のアカウントにログインするために使用する必要があるため削除できません)
答え1
通常、SSHキーはサーバーではなくクライアントを識別します(少なくともキーの場合~/.ssh
)。推奨されるアプローチは、(効果的に実行したように)クライアントごとに鍵を生成し、アクセスする必要がある~/.ssh/authorized_keys
サーバー/アカウントにすべての適切な公開鍵を追加することです。
したがって、Macbook Proは新しいサーバーにキーを追加せずに、通常は次のようにして新しいキーに既存のキー(Macbookに保存)を追加します。
ssh-copy-id <username>@<server>
これがうまくいかないと、
cat ~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
Macbookでサーバーの端にコピー/貼り付けます。
すべてのサーバーで使用する必要があるすべてのアカウントは、最終的に次のようになります~/.ssh/authorized_keys
。
ssh-rsa AAAAuifi4poojaixahV8thaQu3eQueex0iequ7Eephua4sai8liwiezaic8othisieseepheexaa1zohdouk5ooxas0aoN9ouFa3ejuiK2odahy8Opaen0Niech4Vaegiphagh4EileiHuchoovusu3awahmo4hooShoocoshi3zohw4ieShaivoora7ruuy7igii3UkeeNg5oph6ohN4ciepaifee8ipas9Gei4cee1SohSoo2oCh5ieta5ohQu6eu5PhoomuxoowigaeH2ophau0xo5phoosh3mah7cheD3ioph1FeeZaudiMei4eighish3deixeiceangah5peeT8EeCheipaiLoonaaPhiej0toYe6== user1@host1
ssh-rsa AAAAsaengaitoh4eiteshijee8ohFichah1chaesh4Oeroh2Chae8aich2os1akoh4Waifee5dai3roethah9oojahnietaexo0ia0xiegheixaiwo8aeshui8uZ4chooCohtei8ooMieloo0pahghaeShooth3zae7eigoSe9arei0lohpeij4aeJ3sahfahviaNiejoozeu1zooth8meibooph5IeGuun1lothiur6aleaw8shuof6fah7ooboophoo8nae6aipieshahcae4ShochohZoh4gohX7aes7aes4bo1eiNaeng7Eeghoh6Ge3Maenoh0qui1eiphahWotahGai8ohYohchuubohp3va5dohs== user2@host1
ssh-rsa AAAA3Zohquoh8UavooveiF0aGho8tokaduih4eosai4feiCoophie7ekisuoNii0raizaighahfaik6aibeviojabee1Sheifo8mae0tiecei4Bai8gaiyahvo1eememofiesai0Teyooghah6iovi1zaibie3aePaFeishie0Pheitahka0FaisieVeuceekooSoopoox7Ahhaed2oi6Faeph1airaizee7Aeg8Aiya2oongaC9ing6iGheeg8chei1ogheighieghie1Apode3shibai5eit8oa5shahDaic0shishie0ies7Aijee5ohk1aetha1Quieyafu2oa0Ahwee3mu9tae4AebeiveeFiewohj== user1@host2
ほとんどのエディタでは行が変わるため、表示すると上記と同じようには見えませんが、各キーには1行しかありません。各行は次の形式を取ります。
[options] key-type public-key comment
重要な部分は、base64でエンコードされた公開鍵である中間部分です。一致する秘密鍵を持つすべてのユーザーはサーバーを使用できます。
キータイプは現在一般的に使用されていますが、ssh-rsa
将来的には他のタイプ(例えばssh-ed255519
)がより広く使用されると予想されるかもしれません。これは、キーの生成時に提供されるオプションによって異なります。
#
この注釈は、人々が鍵を識別するのを助けるためのものです。したがって、時々、誰かが承認されたキーのリストを閲覧し、情報に基づいてキーを維持するかどうかを決定することができます。ファイル)。通常、コメントは生成されたキーに対応するユーザー名とホスト名です(つまり、ランタイムユーザー名とssh-keygen
クライアントシステムのホスト名)。
オプションのオプション(上記の例にはオプションがありません)を使用すると、ユーザーがサーバーで実行できる操作を制御したり、キーを制限したりできます(たとえば、特定の認証局の署名が必要です)。詳細については参照sshd
マンページ(「AUTHORIZED_KEYSファイル形式」を検索してください)
答え2
ファイルに以下を追加します~/.ssh/config
。
Host *
IdentityFile ~/.ssh/id_whatever
これで、このファイルはssh
ホストに接続するときに使用しようとしました。
を使用する代わりに、明示的に名前を付けて特定のホストに制限することができます*
。
答え3
mv id_rsa idnew_rsa;mv id_rsa.pub idnew_rsa.pub;cat idnew_rsa.pub|ssh user@host 'cat>> ~/.ssh/authorized_keys'
します。
ファイル名には何もなく、内容だけが重要です。
ssh -i idnew_rsa user@host