日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mac下使用sshpass实现ssh记住密码

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mac下使用sshpass实现ssh记住密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From: http://tinyhema.iteye.com/blog/2093795

由于有一些場景不能使用ssh私鑰來實現免登,因此需要想其它辦法解決一下這個問題。


安裝sshpass

試圖使用homebrew安裝

Shell代碼 ?
  • $?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強制安裝
    Shell代碼 ?
  • brew?install?https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb??

  • 成功了。。。

    編譯安裝
    Shell代碼 ?
  • 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路徑可以去掉,這樣就會安裝到默認目錄中。

    使用方式
    Java代碼 ?
  • sshpass?-p?'ssh_password'?ssh?xxx.xxx.xxx.xxx??

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

    簡單的使用方式
    寫一個腳本,記錄一些常用的用戶名與密碼,通過簡單的選擇即可完成ssh登錄。
    創建一個文件sshp。
    Shell代碼 ?
  • #!/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??


  • 使用方法
    Shell代碼 ?
  • $?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??


  • 可以看到,相比第一種方法,這種模式要簡單很多。

    更簡單的使用方法,應該是只需要輸入 sshp host,就可以完成ssh登錄。

    更簡單的使用方式
    使用一個文件存儲host、password對,自行根據host匹配密碼,并登錄。

    創建一個腳本,名為sshp,內容如下。
    Shell代碼 ?
  • #!/bin/bash??
  • ??
  • RC_ERR_NO_HOST=11??
  • RC_ERR_NO_PASSWORD=21??
  • RC_SUCCESS=0??
  • ??
  • pass_path=~/.ssh/sshp_pass??
  • ??
  • host=$1??
  • ??
  • #?arguments???
  • if?[?-z?$host?];?then??
  • ????echo?"ERR_NO_HOST,?please?input?host."??
  • ????exit?$RC_ERR_NO_HOST????
  • fi??
  • ??
  • #?read?file??
  • pwd=`grep?$host\??$pass_path?|?cut?-d'?'?-f?2`??
  • if?[?-z?$pwd?];?then??
  • ????echo?"ERR_NO_PASSWORD,?please?record?password?first.?file?path?$pass_path"??
  • ????exit?$RC_ERR_NO_PASSWORD??
  • fi??
  • ??
  • exec?sshpass?-p?$pwd??ssh?root@$host?-p22??
  • exit?$RC_SUCCESS??


  • 使用方法
    Shell代碼 ?
  • sshp?host??


  • 創建一個文件 ~/.ssh/sshp_pass,存放 host 與密碼數據,格式為"host password"。
    例如
    Shell代碼 ?
  • 10.101.81.238?123456??


  • 除了可以動態指定host以外,還可以實現 用戶名、端口的自定義,暫時沒有需求,就這樣吧。^_^

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的mac下使用sshpass实现ssh记住密码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。