パスワードを指定せずにスクリプトからリモートでSSH経由で接続する方法

パスワードを指定せずにスクリプトからリモートでSSH経由で接続する方法

私のスクリプトでは、次のことを行っています。 ssh [email protected]

パスワードを尋ねる [email protected]'s password:

SSH接続を生成するスクリプトを実行し、パスワードを入力する必要がないようにパスワードを渡すにはどうすればよいですか?

答え1

何を探していますかssh keys?その後、を入力する必要はありませんpassword

RSAキーを生成するには、コマンドラインに次のように入力します。

ssh-keygen -o -b 4096 -t rsa

注:秘密鍵をパスワードで保護しないと、コンピュータにアクセスできる人は誰でもその公開鍵を持つリモートシステムからSSHを介して(パスワードの入力を求めずに)アカウントに接続できます。

秘密鍵は、デフォルトのファイルid_rsa名(例:my_ssh_key)または指定したファイル名(例:my_ssh_key)を使用して生成され、コンピュータのホームディレクトリの外にある.sshディレクトリ(たとえば、または~/.ssh/id_rsa~/.ssh/my_ssh_keyに保存されます。

リモートシステムのアカウントにまだファイルがない場合は、~/.ssh/authorized_keysコマンドラインに次のコマンドを入力します。

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

キーをリモートサーバーにコピーするには:

ssh-copy-idSSHは、一部のオペレーティングシステムで利用可能なユーティリティですSSH

を使用するには、ssh-copy-idユーザー名とアクセスするサーバーのIPアドレスを渡します。

ssh-copy-id USER@IP-ADDRESS

引用:

SSHによる公開鍵認証の使用

リモートシステムに接続するためのSSH公開鍵認証の設定

答え2

これにはいくつかの方法がありますが、パスワードを渡すのではなく公開/秘密鍵を使用することをお勧めします(可能)。この質問に対する答えはいくつかあります。しかし、簡単な方法は次のとおりです。

コンピュータで、次の手順でログインします。

公開/秘密鍵の組み合わせを作成します。

ssh-keygen -t rsa

公開鍵をリモートシステムにコピーします。

ssh-copy-id [email protected]

その後、パスワードを入力する必要があり、公開鍵は192.168.1.89にコピーされます。最初のコンピュータにログインすると、パスワードを入力するように求められなくなります。

関連情報