sshpass專題---免交互式ssh&MAC下使用SSHPASS

COVER:
https://www.cnblogs.com/kaishirenshi/p/7921308.html
https://www.cnblogs.com/senlinyang/p/7833249.html

sshpass的使用方法

應用范圍:可以在命令行直接使用密碼來進行遠程連接和遠程拉取文件。

實例1:直接遠程連接某臺主機:

命令:sshpass -p xxx ssh root@192.168.11.11

image

實例2:遠程連接指定ssh的端口:

命令:sshpass -p 123456 ssh -p 1000 root@192.168.11.11 (當遠程主機不是默認的22端口時候)

image

實例3:從密碼文件讀取文件內容作為密碼去遠程連接主機

命令:sshpass -f xxx.txt ssh root@192.168.11.11

image

實例4:從遠程主機上拉取文件到本地

命令: sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/

image

補:

ssh的配置文件位置:vim /etc/ssh/sshd_config

image

去掉#,修改端口號。

sshpass的安裝:


**Ubuntu**:
apt-get  install sshpass

**centos:**

 wget [http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz](http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz) 
 tar xvzf sshpass-1.05.tar.gz 

 cd sshpass-1.05.tar.gz 

 ./configure 
 make 
 make install

MAC

cover:https://blog.csdn.net/joeblackzqq/article/details/46598189
由于有一些場景不能使用ssh私鑰來實現免登,因此需要想其它辦法解決一下這個問題。
安裝sshpass

試圖使用homebrew安裝

$ brew install sshpass  
Error: No available formula for sshpass  
We won't add sshpass because it makes it too easy for novice SSH users to  
ruin SSH's security. 

這個萌賣的好。。。。

使用homebrew強制安裝

brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb

成功了。。。

編譯安裝

wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz  
tar xvzf sshpass-1.05.tar.gz  
./configure --prefix=/usr/local/Cellar/sshpass/1.05  
make  
sudo make install  

編譯安裝的步驟是從brew的步驟中copy出來的,絕對可行。其中./configure 后面的prefix路徑可以去掉,這樣就會安裝到默認目錄中。

使用方式

sshpass -p 'ssh_password' ssh xxx.xxx.xxx.xxx  

可以看到這種方式其實還是要在命令里指定host+密碼登錄,還是不夠方便。期待的方式是只需要指定host即可,密碼神馬的,能自己處理。

簡單的使用方式

寫一個腳本,記錄一些常用的用戶名與密碼,通過簡單的選擇即可完成ssh登錄。
創建一個文件sshp。

#!/bin/bash  
cat <<MENU  
    a   =>  10.101.81.238  
    10.101.81.238   =>  10.101.81.238  
    b   =>  192.168.4.151  
    192.168.4.151   =>  192.168.4.151  
    c   =>  192.168.4.2  
    192.168.4.2     =>  192.168.4.2  
  
>>> 請輸入ip或序號 <<<  
MENU  
    echo -n "Your choose:"  
    read host  
    case "$host" in  
        a|10.101.81.238)  
            exec /usr/local/bin/sshpass -p 123456  ssh root@10.101.81.238 -p22  
            ;;  
        b|192.168.4.151)  
            exec /usr/local/bin/sshpass -p 'sdfsdf'  ssh root@192.168.4.151 -p22  
            ;;  
        c|192.168.4.2)  
            exec /usr/local/bin/sshpass -p 'wfssfs'  ssh root@192.168.4.2 -p22  
            ;;  
        *)  
        echo "Error, No host"  
        ;;  
    esac  

使用方法

$ sshp  
    a   =>  10.101.81.238  
    10.101.81.238   =>  10.101.81.238  
    b   =>  192.168.4.151  
    192.168.4.151   =>  192.168.4.151  
    c   =>  192.168.4.2  
    192.168.4.2     =>  192.168.4.2  
  
>>> 請輸入ip或序號 <<<  
Your choose:a  
# ssh login success  
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容