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

要實現ssh自動登錄,
主要有三種方法:
1、生成公私鑰。
2、編寫expect腳本。
3、用sshpass。
用法:

    sshpass 參數 SSH命令(ssh,sftp,scp等)。
    參數:
        -p password    //將參數password作爲密碼。
        -f passwordfile //提取文件passwordfile的第一行作爲密碼。
        -e        //將環境變量SSHPASS作爲密碼。

    比如說:
        scp [email protected]:/home/xxx/test /root   這個命令的作用是將服務器端文件test傳到本地文件夾/root下。
        利用sshpass,假設密碼爲efghi,則可寫作:
        ssh -p efghi scp [email protected]:/home/xxx/test /root

另外,對於ssh的第一次登陸,會提示:“Are you sure you want to continue connecting (yes/no)”,這時用sshpass會不好使,解決方法:
1.可以在ssh命令後面加上 -o StrictHostKeyChecking=no來解決。比如說上面的命令,就可以寫作ssh -p efghi scp [email protected]:/home/xxx/test /root -o StrictHostKeyChecking=no。
2.或者寫入配置文件:把 StrictHostKeyChecking no 加到/etc/ssh/sshconfig 可以讓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代碼

  1. mknod -m 666 /dev/ptmx c 5 2  
  2. #chmod 666 /dev/ptmx  
  3. mkdir /dev/pts       
  4.          
  5. #編輯/etc/fstab,加入:  
  6.       none             /dev/pts         devpts         gid=5,mode=620    0 0  
  7.   
  8. mount /dev/pts  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章