實現ssh自動登陸的三種方式

2021-05-22 14:19:58 字數 1208 閱讀 4518

要實現ssh自動登入,

主要有三種方法:

1、生成公私鑰。

2、編寫expect指令碼。

3、用sshpass。

用法:

sshpass 引數 ssh命令(ssh,sftp,scp等)。

引數:

-p password    //將引數password作為密碼。

-f passwordfile //提取檔案passwordfile的第一行作為密碼。

-e        //將環境變數sshpass作為密碼。

比如說:

scp [email protected]:/home/***/test /root   這個命令的作用是將伺服器端檔案test傳到本地資料夾/root下。

利用sshpass,假設密碼為efghi,則可寫作:

ssh -p efghi scp [email protected]:/home/***/test /root

1.可以在ssh命令後面加上 -o stricthostkeychecking=no來解決。比如說上面的命令,就可以寫作ssh -p efghi scp [email protected]:/home/***/test /root -o stricthostkeychecking=no。

2.或者寫入配置檔案:把 stricthostkeychecking no 加到/etc/ssh/ssh

config 可以讓ssh客戶端自動接受新主機的hostkey,不用每次都自己輸入yes

交叉編譯arm版本,

在sshpass目錄執行:

./configure

./make cc=arm-linux-gcc

自動傳檔案:

./sshpass -p 111111 ./scp -s ./ssh -o stricthostkeychecking=no  -r ./test.file

[email protected]:./

sshpass依賴pts,若pst沒有載入,則執行

bash**

mknod -m 666 /dev/ptmx c 5

2#chmod 666 /dev/ptmx  

mkdir /dev/pts       

none             /dev/pts         devpts         gid=5,mode=62000

mount /dev/pts  

shell實現SSH自動登陸

公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...

shell實現SSH自動登陸

公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...

shell實現SSH自動登陸

前些天在同事進行技術分享時,看到他竟然只輸入了一行命令.test.sh就成功登陸了開發機,甚是驚異,於是回來搜尋研究了一下,遂成此文。在編寫ssh自動登陸指令碼之前,先說一下shell指令碼的基礎,此基礎不是一些語法什麼的,網上到處都是,這裡總結了一下shell指令碼的執行機制 首先要說一下shel...