今天在配置 svn 鉤子的時候,想要登錄到另一臺服務器上時,指定明文密碼進行ssh登錄的時候,總是沒有響應的停滯在那裏了,命令如下:
- sshpass -p 用戶明文密碼 ssh 用戶名@遠程服務器 IP 地址
因爲這是連的一臺新的服務器,最初並沒有進行 ssh 登錄測驗,所以在使用sshpass 登錄之前一定要先測試ssh登錄。
接着查了下相關資料,並作出瞭如下的歸納以便日後類似問題的查看。
sshpass 的定義:ssh 登陸不能在命令行中指定密碼,sshpass 的出現則解決了這一問題。它允許你用 -p 參數指定明文密碼,然後直接登錄遠程服務器,它支持密碼從命令行、文件、環境變量中讀取。
第一種使用情況:直接遠程連接某臺主機
- 命令:sshpass -p xxx ssh root@遠程服務器IP地址
第二種使用情況:遠程連接指定 ssh 的端口:
- 命令:sshpass -p 123456 ssh -p 1000 root@遠程服務器IP地址 (當遠程主機不是默認的22端口時候)
第三種使用情況:從密碼文件讀取文件內容作爲密碼去遠程連接主機
- 命令:sshpass -f xxx.txt ssh root@遠程服務器IP地址
第四種使用情況:從遠程主機上拉取文件到本地
- 命令: sshpass -p '123456' scp root@遠程服務器IP地址:/home/test/t ./tmp/
在配置 svn 鉤子時碰到的另一個問題是,使用非 root 賬戶配置遠程鉤子時,需要在遠程服務器上使用非 root 賬戶進行檢出,因爲使用 root 賬戶檢出後,在進行 svn 提交鉤子更新時將出現權限問題。
參考資料:
sshpass簡介及安裝 https://my.oschina.net/Julian1988/blog/144261
sshpass的使用方法 https://www.cnblogs.com/kaishirenshi/p/7921308.html