GNU/Linux >> Linux の 問題 >  >> Linux

openSSH から SSH2 への SSH Key ベースの認証設定

以前の記事 (openSSH から openSSH へのセットアップ、SSH2 から SSH2 へのセットアップ) では、パスワードを入力せずにsshとscpを実行するには、同じバージョンのssh。この記事では、異なるバージョンの SSH (openSSH から SSH2 まで) 間で SSH 鍵ベースの認証をセットアップして、パスワードを入力せずに ssh と scp を実行する方法について説明します。

1.ローカル ホストとリモート ホストの SSH バージョンを確認します。

この例では、local-host は openSSH で実行され、remote-host は SSH2 で実行されています。

[local-host]$ ssh -V
OpenSSH_5.0p1, OpenSSL 0.9.8g 19 Oct 2007

[remote-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
lrwxrwxrwx  1 root root 4 Mar 10 22:04 /usr/local/bin/ssh -> ssh2

2. ssh-keygen を使用してローカル ホストでキー ペアを生成します

[local-host]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):<Hit enter>
Enter passphrase (empty for no passphrase): <Enter your passphrase here>
Enter same passphrase again:<Enter your passphrase again>
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
3b:2a:d2:ac:8c:71:81:7e:b7:31:21:11:b8:e8:31:ad jsmith@local-host

公開鍵と秘密鍵は通常、ホーム ディレクトリの下の .ssh フォルダーに保存されます。この例では、/home/jsmith/.sshd の下にあります。秘密鍵は誰とも共有しないでください。

デフォルトでは、openSSH の ssh-keygen は RSA キー ペアを生成します。次を使用して DSA キー ペアを生成することもできます:ssh-keygen -t dsa コマンド。

3. openSSH 公開鍵を SSH2 公開鍵に変換します。

openSSH を実行しているローカル ホストで、以下に示すように ssh-keygen を使用して、openSSH 公開鍵を SSH2 公開鍵に変換します。

[local-host]$ ssh-keygen -e -f ~/.ssh/id_rsa.pub > ~/.ssh/id_rsa_ssh2.pub

4. SSH2 を実行しているリモート ホストに公開鍵をインストールします。

リモートホストで新しい公開鍵ファイルを作成し、ローカルホストから変換された SSH2 キーをコピーして貼り付けます。

[remote-host]$ vi ~/.ssh2/local-host_ssh2_key.pub 
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, converted from OpenSSH by jsmith@local-host"
DDDDB3NzaC1yc2EAAAABDmbrdomPh9rWfjZ1+7Q369zsBEa7wS1RxzWRQ0Bmr9FSplI
3ADBEBC/6cbdf/v0r6Cp5y5kusP07AOzo2F7MBDSZBtS/MbYJiIxvocoaxG2bQyz3yYjU
YcpzGMD182bnA8kRxmGg+R5pVXM34lx3iSSgd8r3RzZKnDpEvEInnI7pQvUBoEbYCXPUeZ
LQvQAkz6+Pb6SsNp-dop/qgv9qyfbyMz1iKUZGadG146GtanL5QtRwyAeD187gMzzrGzMFP
LWjdzWpGILdZ5gq7wwRpbcXFUskVrS2ZjDe676XlTN1k5QSZmSYUuttDdrjB5SFiMpsre8
a7cQuMS178i9eDBEC==
---- END SSH2 PUBLIC KEY ----

以下に示すように、上記の公開鍵ファイル名をリモートホストの認証ファイルに追加します。

[remote-host]$ vi ~/.ssh2/authorization 
Key local-host_ssh2_key.pub

5. SSH2 キー認証を使用して、ローカル ホストからリモート ホストへのログインを確認します。

[local-host]$ ssh -l jsmith remote-host <You are on local-host here>
The authenticity of host 'local-host' can't be established.
DSA key fingerprint is a5:f6:2e:e6:a9:b2:7b:0e:e7:ae:cb:6c:7b:f5:6d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'local-host' (DSA) to the list of known hosts.
Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <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 つの方法があります:

<オール>
  • パスフレーズなし。 キー ペアの作成中は、パスフレーズを空のままにします。このオプションは、自動バッチ処理に使用します。例えばマシン間でファイルをコピーするために cron ジョブを実行している場合、これは適切なオプションです。このメソッドの次のステップはスキップできます。
  • パスフレーズと SSH エージェントを使用する。 コマンドラインから対話的に ssh と scp を使用していて、ssh または scp を実行するたびにパスワードを使用したくない場合は、前のオプション (パスフレーズなし) はお勧めしません。 ssh 鍵ベースの認証におけるセキュリティの強化。代わりに、キー ペアの作成時にパスフレーズを使用し、SSH エージェントを使用して ssh と scp を実行します。以下の手順で説明するように、パスワードを毎回入力する必要はありません。
  • 6.ローカル ホストで SSH エージェントを起動する

    SSH エージェントはバックグラウンドで実行され、秘密鍵を保持し、パスフレーズを何度も入力することなく ssh と scp を実行します。

    [local-host]$ ssh-agent $SHELL

    7.ローカル ホスト上の SSH エージェントに秘密鍵を読み込みます。

    [local-host]$ ssh-add
    Enter passphrase for /home/jsmith/.ssh/id_rsa:<Enter your passphrase here>
    Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)

    8.パスワードを入力せずに、ローカル ホストからリモート ホームへの 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>

    Linux
    1. LinuxでSSHキーベースの認証を構成する方法

    2. Ssh –OpensshキーとPuttyキーの違いは?

    3. SSH公開鍵認証を有効にする

    1. Ssh –公開鍵認証を使用したSshでパスワードプロンプトを引き続き取得しますか?

    2. ルートアクセスとSshキーベースの認証にSudoを必要とするシステムでSftpを使用するにはどうすればよいですか?

    3. SSH2 キーベースの認証設定の総合ガイド

    1. openssh秘密鍵をSsh2秘密鍵に変換しますか?

    2. Ssh認証に使用するGpgサブキーとしてSshキーをインポートしますか?

    3. SSH2 から OpenSSH にパスワードなしで SSH および SCP を実行する方法