以前、openSSH でパスワードを入力せずに SSH と SCP を実行する方法を説明しました。この記事では、SSH2 で鍵ベースの認証をセットアップする方法を説明します。
1. パスワードを入力せずに SSH/SCP を実行します。
1.ローカル ホストとリモート ホストが SSH2 を実行していることを確認します。 以下に示すように、ssh と scp はそれぞれ ssh2 と scp2 へのシンボリック リンクであることに注意してください。
[local-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2 lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2 [local-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu [remote-host]$ ls -l /usr/local/bin/ssh /usr/local/bin/scp lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/scp -> scp2 lrwxrwxrwx 1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2 [remote-host]$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu
2. ssh-keygen2 を使用して、ローカル ホストで鍵ペアを生成します。 通常、ssh-keygen は、以下に示すように ssh-keygen2 へのソフトリンクになります。
[local-host]$ ls -l /usr/local/bin/ssh-keygen lrwxrwxrwx 1 root root 11 Mar 10 22:04 /usr/local/bin/ssh-keygen -> ssh-keygen2 [local-host]$ ssh-keygen Generating 2048-bit dsa key pair 2 oOo.oOo.oOo. Key generated. 2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700 Passphrase :<Enter the passphrase> Again : Private key saved to /home/jsmith/.ssh2/id_dsa_2048_b Public key saved to /home/jsmith/.ssh2/id_dsa_2048_b.pub
公開鍵と秘密鍵は、ホーム ディレクトリの下の .ssh2 フォルダーに格納されます。この例では、/home/jsmith/.ssh2 の下にあります。秘密鍵は誰とも共有しないでください。
デフォルトでは、ssh-keygen2 は DSA キー ペアを生成します。 ssh-keygen -t rsa を使用して RSA キー ペアを生成することもできます。
3. .ssh2 ディレクトリに適切な権限を与える 以下に示すように。
[local-host]$ chmod 755 ~/.ssh2/ [local-host]$ chmod 644 ~/.ssh2/id_dsa_2048_b.pub [local-host]$ chmod 644 ~/.ssh2/authorization
<強い>4.クライアント マシンで秘密鍵を特定します。 ローカル ホストで、以下に示すように秘密鍵を SSH2 識別ファイルに追加します。識別ファイルが存在しない場合は、新しいファイルを作成します。ファイルが存在する場合は、上記の手順で生成された秘密鍵のファイル名を識別ファイルの「IdKey {private-key file-name}」に追加します。 」の形式を以下に示します。
[local-host]$ cat /home/jsmith/.ssh2/identification IdKey id_dsa_2048_a IdKey id_dsa_2048_b
<強い>5.公開鍵をリモート ホストにコピーします。
/home/jsmith/.ssh2/id_dsa_2048_b.pub ファイルをローカル ホストからリモート ホスト /home/jsmith/.ssh2/id_dsa_2048_b.pub にコピーします。リモートホストで vi /home/jsmith/.ssh2/id_dsa_2048_b.pub を実行し、ローカルホストから公開鍵の内容をコピーできます。
[remote-host]$ cat /home/jsmith/.ssh2/id_dsa_2048_b.pub ---- BEGIN SSH2 PUBLIC KEY ---- Subject: jsmith Comment: "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:\ 20 -0700" BCDEB3NzaC1kc3MAAAEBAMNH6MnHGNzNcuXWuQrGljZsObQq5SknOpLOreXq2GVeSIspX0 S1q7W63VGVDBD9ZVvZzg3UhzsPp6m/WPS53QAxlpQvTLCepipl1LILeOZRnYw+xXzEGgqa HggXhTy7Z1BMtB1dSlXT2Q1gdvRkvZ0hmlMXH0ktj7U81lKEkzYj8E/E1PZIJsBHAXbYms q7ftNTd7Gf1mSfbWIG7NIyOZ4i2qSZpQayuvB3MFQXy8lz25NGVq18zoFV4THtzV6ABvHL IJXEObZUgdUXJXQg49oeXvE6tyaqSUU7tUbp06ZgI/BcFGmbk9FDoC5gy30S5RBPpAJ5II vsfksnJRt+8R0AAAAVAJcTY6u2Em0Eo5I7X6yL1W+Di+rpAAABAELiJqtn2flgjA926TQk 3af14zSGFHut5kZjsMKUf+3Jj3p5MTiWVglgwWYLXcrG258l5GVPzdgF2d7Z9Bu1RUsdBo rU5LURvF1cZqC5V+9PD6hlH1iYuULUIbAaIfH6SXuk2KwQ/pEh1Q+lXUj6cCfLwe+yLcvZ YKLGdi2MvurUKmVRik3RpaB9wcuKbLjkp1rFZGr9skDAc2hYfpM0uF+6UEz6LXWKIvLJeO Iro6VL3MkJTxXb/Xu5/77TrT+Iz8+5cbALM3EdBOlJa1HcpPXnSKakB3Wo/Ljzf41GZPc/ Y6u09soNsnAHdv9y9gMhj1054sPwNCEJAy4eaWWsqkMAAAEBAL6eolWH4AGuB2/lPu79B0 ufgaU6BQfxED7rItf/lDhtsfHl77u6URxwQzvSV2CNJJ17WkdQoJmGfTVoSduNXOAgkQJU woB1ALzUfugbzLVxMXWUlmoQjvyoo4G9LMDdyP5qCbFXKsqkpY16N9xcUap5PgmcoF+dCv +hTjcC6f8j+BOy7zHYfyBnPGgSjKph9gjHyBEZiujPNkNmDXM+Mz7YeEd5HCtt1p55SBv6 wyePMAjf40ty7xcakj0Gk8c52W5yFwQjJw5EvruYW2s/1eNDXIY1IJOQKlUgOEQfon99a/ 8NO0BWLNiSCNdr3uHFkr68jeusASRWWvfxYU6uZ9c= ---- END SSH2 PUBLIC KEY ----
<強い>6.リモートホストに認証ファイルを作成 以下に示すように。この承認ファイルには、前の手順で説明したように、ローカル ホストからリモート ホストにコピーされた公開キーの名前が含まれている必要があります。このファイルの形式は「キー {公開鍵ファイル名}」であることに注意してください。 「.
[remote-host]$ cat /home/jsmith/.ssh2/authorization Key id_dsa_2048_b.pub
7. SSH2 キー認証を使用してローカル ホストからリモート ホストにログインし、正常に動作するかどうかを確認します。
[local-host]$ ssh -l jsmith remote-host <You are on local-host here> Passphrase for key "/home/jsmith/.ssh2/id_dsa_2048_b" with comment "2048-bit dsa, jsmith@local-host, Sat Jun 21 2008 23:10:20 -0700": <Enter your passphrase here> Last login: Sat Jun 21 2008 23:13:00 -0700 from 192.168.1.102 No mail. [remote-host]$ <You are on remote-host here>
パスワードを入力せずに ssh と scp を実行するには、2 つの方法があります:
<オール><強い>8.ローカル ホストで SSH エージェントを起動して、パスフレーズを何度も入力せずに ssh と scp を実行します。
[local-host]$ ssh-agent $SHELL
9.ローカル ホスト上の SSH エージェントに秘密鍵を読み込みます。
[local-host]$ ssh-add Adding identity: /home/jsmith/.ssh2/id_dsa_2048_b.pub Need passphrase for /home/jsmith/.ssh2/id_dsa_2048_b (2048-bit dsa, jsmith@local-host, Sat Jun 22 2008 23:10:20 -0700). Enter passphrase: <Enter your passphrase here>
<強い>10.パスワードを入力せずに、ローカル ホストからリモート ホームへの SSH または SCP を実行します。
[local-host]$<You are on local-host here> [local-host]$ ssh -l jsmith remote-host Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102 No mail. <ssh did not ask for passphrase this time> [remote-host]$ <You are on remote-host here>
この記事に関するご意見やご感想をお寄せください。この投稿が気に入ったら、The Geek Stuff を購読していただければ幸いです。