just keep backup.
安裝 sshpass
$ sudo apt-get install sshpass
sshpass 操作範例
密碼直接打在 -p 參數後面
$ sshpass -p 'mypassword' ssh myaccount@my.linux.host
$ sshpass -p 'mypassword' sftp myaccount@my.linux.host
$ sshpass -p 'mypassword' scp myaccount@my.linux.host:/path/to/file ./
$ sshpass -p 'mypassword' rsync -a -v myaccount@my.linux.host:/path ./密碼存放在檔案裡面
$ echo "mypassword" > ~/.mypasswd
$ sshpass -f ~/.mypasswd ssh myaccount@my.linux.host密碼放在環境變數
$ SSHPASS="mypassword" sshpass -e ssh myaccount@my.linux.host
或
$ export SSHPASS="mypassword"
$ sshpass -e ssh myaccount@my.linux.host
$ unset SSHPASS使用 stdin 傳遞密碼
$ echo "mypassword" | sshpass -d 0 ssh myaccount@my.linux.host "commands"
或
$ vi test.sh
01
#!/bin/bash
02
03
if
[
"$1"
=
"AcTiOn"
];
then
04
read
i
05
echo
$i | sshpass -d 0
ssh
myaccount@my.linux.host
"commands"
06
exit
07
fi
08
09
if
[ -e
"$1"
];
then
10
cat
$1 | $0 AcTiOn
11
fi
$ sh ./test.sh ~/.mypasswd
讓首次 ssh 連線不出現提示訊息
測試 "首次連線": 把 my.linux.host 從 ~/.ssh/known_hosts 移除
$ ssh-keygen -f ~/.ssh/known_hosts -R my.linux.host此時 ssh 會出現確認訊息
$ ssh myaccount@my.linux.hostThe authenticity of host 'my.linux.host (192.168.1.1)' can't be established.
RSA key fingerprint is 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff.
Are you sure you want to continue connecting (yes/no)? (回答 no 或 Ctrl + C 脫離)以下方法讓首次 ssh 連線不出現提示訊息, 自動將連線目標加入 ~/.ssh/known_hosts
$ sshpass_command="sshpass -p "loginpassword" ssh -o StrictHostKeyChecking=no"
避免密碼記錄在 history
方式一先停止 history 記錄
$ set +o history進行 sshpass -p 相關操作最後再恢復 history 記錄
$ set -o history方式二直接進行 sshpass -p 相關操作清除操作記錄
$ true > ~/.bash_history
$ history -c
沒有留言:
張貼留言