LinuxのBashスクリプト

LinuxのBashスクリプト

私のシステムで実行されるスクリプトファイルを使用して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

関連情報