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

openSSH でパスワードを入力せずに SSH と SCP を実行する

この記事では、openSSH上でSSHエージェントによるSSH公開鍵認証を利用して、パスワードを入力せずにsshとscpを行う方法を解説します

SSH 鍵ベースの認証には、2 つのレベルのセキュリティーがあります。ログインするには、秘密鍵とパスフレーズの両方が必要です。どちらかが侵害されたとしても、ログインには両方が必要なため、攻撃者はアカウントにログインできません。これは、パスワードが侵害された場合に攻撃者がシステムにアクセスできる一般的なパスワード ベースの認証よりもはるかに優れています。

パスワードを入力せずに ssh と scp を実行するには、2 つの方法があります:

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

    1. local-host と remote-host が openSSH を実行していることを確認します

    [local-host]$ ssh -V
    OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006
    
    [remote-host]$ ssh -V
    OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006

    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:
    31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

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

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

    3.リモートホストに公開鍵をインストールします。

    公開鍵の内容をローカル ホストからコピーし、リモート ホストの /home/jsmith/.ssh/authorized_keys に貼り付けます。 /home/jsmith/.ssh/authorized_keys に既に他の公開鍵がある場合は、これを末尾に追加できます。 remote-host のホーム ディレクトリの下に .ssh ディレクトリが存在しない場合は、作成してください。

    [remote-host]$ vi ~/.ssh/authorized_keys 
    ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

    簡単に言うと、local-host:/home/jsmith/.ssh/id_rsa.pub を remote-host:/home/jsmith/.ssh/authorized_keys にコピーします。

    4.リモートホストの .ssh ディレクトリに適切な権限を付与してください。

    [remote-host]$ chmod 755 ~/.ssh
    [remote-host]$ chmod 644 ~/.ssh/authorized_keys

    5. SSH キー認証を使用してローカル ホストからリモート ホストにログインし、正常に動作するかどうかを確認します。

    [local-host]$ <You are on local-host here>
    
    [local-host]$ ssh -l jsmith remote-host
    Enter passphrase for key '/home/jsmith/.ssh/id_rsa': <Enter your passphrase here>
    Last login: Sat Jun 07 2008 23:03:04 -0700 from 192.168.1.102
    No mail. [remote-host]$ <You are on remote-host here>

    6.ローカル ホストで SSH エージェントを起動して、パスフレーズを何度も入力することなく ssh と scp を実行します。

    SSH エージェントが既に実行されているかどうかを確認します。実行されていない場合は、次のように開始します。

    [local-host]$ ps -ef | grep ssh-agent
    511 9789 9425 0 00:05 pts/1 00:00:00 grep ssh-agent

    [local-host]$ ssh-agent $SHELL

    [local-host]$ ps -ef | grep ssh-agent
    511 9791 9790 0 00:05 ? 00:00:00 ssh-agent /bin/bash
    511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

    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)

    以下は、ssh-add で利用可能なさまざまなオプションです:

    • ssh-add :特定の鍵ファイルを読み込みます。
    • ssh-add -l:ssh エージェントに読み込まれたすべてのキーを一覧表示します。
    • ssh-add -d :ssh エージェントから特定のキーを削除します
    • ssh-add -D:すべてのキーを削除

    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>

    The Geek Stuff に関するニュースを広めるのを手伝ってください。

    この記事に関するご意見やご感想をお寄せください。この投稿が気に入ったら、下のリンクから del.icio.us または Digg に追加して、「The Geek Stuff」ブログについて広めていただければ幸いです。


    Linux
    1. SSH –sshキーの生成と操作

    2. LinuxでPPKファイルをOpenSSHキーに変換し、SSHを使用してログインする方法は?

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

    1. Ssh –パスワードなしでSudoを実行できる場合、Sudoを実行するにはTtyが必要ですか?

    2. パスワードを入力せずにSSH経由でファイルをリモートコピーする方法は?

    3. ssh-keygen と ssh-copy-id を使用してパスワードなしで SSH ログインを実行する 3 つの手順

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

    2. 11 Linux で便利な「ssh」および「scp」コマンド

    3. パスワードなしのキーを使用して SSH ログインが機能しませんか?