私のスクリプトでは、次のことを行っています。
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-id
SSH
は、一部のオペレーティングシステムで利用可能なユーティリティですSSH
。
を使用するには、ssh-copy-id
ユーザー名とアクセスするサーバーのIPアドレスを渡します。
ssh-copy-id USER@IP-ADDRESS
引用:
答え2
これにはいくつかの方法がありますが、パスワードを渡すのではなく公開/秘密鍵を使用することをお勧めします(可能)。この質問に対する答えはいくつかあります。しかし、簡単な方法は次のとおりです。
コンピュータで、次の手順でログインします。
公開/秘密鍵の組み合わせを作成します。
ssh-keygen -t rsa
公開鍵をリモートシステムにコピーします。
ssh-copy-id [email protected]
その後、パスワードを入力する必要があり、公開鍵は192.168.1.89にコピーされます。最初のコンピュータにログインすると、パスワードを入力するように求められなくなります。