私のシステムで実行されるスクリプトファイルを使用してUbuntuのリモートシステムにログインしたいと思います。スクリプトには次のコマンドが含まれています。
#!/bin/bash
echo 'systemPwd' | ssh [email protected]
このスクリプトを実行すると、システムにログインできなくなります。 echoコマンドはパスワードを取得しません。しかし、代替品をどのように使用するのかわかりません。
しかし、私はこのスクリプトを試しました
#!/bin/bash
sshpass -p 'systemPwd' ssh [email protected] <<-'ENDSSH'
#commands to run on remote host
echo 'systemPwd' | sudo -S shutdown-h now
ENDSSH
上記のスクリプトではsshpass
すでに使用されています。問題は、sshpass
まずインストールする必要があることです。誰でもsshpass
。
答え1
を使用することをお勧めしますSSH Keys
。
作成するには、SSH Keys
クライアントコンピュータで次のコマンドを使用します。
ssh-keygen -t rsa
authorized_keys
その後、次のコマンドを使用して公開鍵を新しいコンピュータのファイルにコピーできますssh-copy-id
。
ssh-copy-id [email protected]
これにより、パスワードなしでリモートコンピュータにログインできます。
詳細は:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2