1. 程式人生 > >mac ssh 自動登入

mac ssh 自動登入

用applescript實現讀取配置檔案,選擇登入的ssh 使用者名稱與密碼,實現自動終端登入

年前入手macbook,由於工作需要通過ssh連線遠端伺服器,win系統經常用SecureCRT,mac也有,裝了還需破解,不清楚是mac 系統的原因還是什麼問題,經常掛掉,重啟也可以執行,而且字型調整快捷鍵沒找到如何修改,煩人的command與雙指觸控板滑動。
mac欄位的終端也還可以,挺好用,只是ssh的遠端使用者名稱與密碼需要一次一次的貼上複製,發現有applescript指令碼,心血來潮,實現讀取配置檔案,展示選擇要ssh的主機,自動貼上使用者名稱與密碼,實現自動登入

密碼檔案

#註釋資訊,xxx伺服器
#顯示選擇的資訊  tab間隔   使用者@ip=密碼
#例如
#[email protected]192.168.1.71  [email protected]192.168.1.71=pwd
[email protected]192.168.1.72   [email protected]192.168.1.72=h112314
[email protected]192.168.1.73   [email protected]192.168.1.73=h212321
[email protected]
192.168.1.74 [email protected]192.168.1.74=h324231 192.168.1.70 [email protected]192.168.1.70=hca13

applescript 原始碼

(*  
    ssh auto login
    用於讀取密碼配置檔案,選擇需要登入的遠端伺服器,實現自動登入
    @date:2016年02月03日00:11:49
    @auth Jeff Zhang
*)


(*
open Terminal
case terminal exist,open new tab
case terminal not exist,open new terminal
*)
on makeNewTerminal() tell application "System Events" try set terminal to application process "Terminal" set newBoo to false on error the error_message number the error_number tell application "Terminal" to launch -- set newTab to do script "" -- create a new window with no initial command -- set current settings of newTab to settings set "Grass" -- end tell delay 0.5 set newBoo to true end try set terminal to application process "Terminal" set frontmost of terminal to true delay 0.5 -- keystroke "n" using command down if newBoo then keystroke "n" using command down else keystroke "t" using command down end if end tell end makeNewTerminal (* login ssh If the speed of network is slow,you can use command + v to paste password . because in this program delay 1s *) on sshLogin(uname, pwd) makeNewTerminal() beep set sshCommand to "ssh " & uname & " " set the clipboard to sshCommand tell application "System Events" (* Note that the input method is not English *) keystroke "v" using command down delay 1 set sshPwd to pwd & " " set the clipboard to sshPwd keystroke "v" using command down -- set the clipboard to pwd end tell end sshLogin -- sshLogin("[email protected]", "password") on selectItems(itemList) if itemList = null or length of itemList = 0 then display dialog "empty ssh information list" buttons {"OK"} default button 1 return false end if set itemKeys to {} repeat with i in itemList set end of itemKeys to key1 of i end repeat set theSelected to choose from list itemKeys with prompt "Pick a ssh connect:" if theSelected ≠ false then set selectdValue to first item of theSelected repeat with i in itemList set k to key1 of i if k is equal to selectdValue then set r to key2 of i log "you choose result value is " & r return r end if end repeat end if return theSelected end selectItems on test() set FoldersList to {} set end of FoldersList to {key1:"RAA", key2:"Research:Journals:RAA11111:"} set end of FoldersList to {key1:"Project", key2:"Research:Project:"} set end of FoldersList to {key1:"MYSELF", key2:"MYSELF:"} set end of FoldersList to {key1:"DoctorPHD", key2:"MYSELF:DoctorPHD"} set end of FoldersList to {key1:"Photos", key2:"MYSELF:Photos"} set end of FoldersList to {key1:"Journals", key2:"Research:Journals"} set end of FoldersList to {key1:"Personal", key2:"Research:Personal"} set sresult to selectItems(FoldersList) if sresult ≠ false then set KeyWordSelected to item 1 of sresult log "result " & sresult & " " & KeyWordSelected end if end test on readSshPropFile(filePath) set rs to {} try set file2content to read POSIX file filePath as «class utf8» on error the error_message number the error_number display dialog "Error: " & filePath & " not exist" buttons {"Cancel"} default button 1 return false end try set theLines to paragraphs of file2content set AppleScript's text item delimiters to " " repeat with linestr in theLines if linestr starts with "#" then else set file2s to every text item of linestr if length of file2s = 2 then set key1 to first item of file2s set key2 to item 2 of file2s if key2 contains "=" then set end of rs to {key1:key1, key2:key2} else log key2 & " not right" end if end if end if end repeat return rs end readSshPropFile on main(thefilePath) set sshInfoList to readSshPropFile(thefilePath) log sshInfoList if sshInfoList ≠ false then set selectValue to selectItems(sshInfoList) if selectValue ≠ false then set AppleScript's text item delimiters to "=" set file2s to every text item of selectValue set uname to item 1 of file2s set pwd to item 2 of file2s log uname & "=" & pwd sshLogin(uname, pwd) end if end if end main on run argv -- 遠端主機使用者資訊檔案 set thefilePath to "/Users/zhanghl/Library/Scripts/Applications/Terminal/pwd.prop" if length of argv = 1 then set thefilePath to item 1 of argv end if main(thefilePath) end run

mac 工具 Automator ,新增一個服務,執行shell 指令碼

echo "applescript auto login ssh"
#這裡可以知道密碼檔案位置
filePath="/Users/zhanghl/Library/Scripts/Applications/Terminal/pwd.prop"
osascript /Users/zhanghl/Library/Scripts/Applications/Terminal/autoSsh.scpt $filePath
exit 0

設定啟動快捷鍵,我這裡用command+shift+0
設定啟動快捷鍵

執行結果

執行快捷鍵 command+shift+0
需注意:當前游標所在的程式的快捷鍵衝突

  1. 選擇登陸的主機
    選擇登陸的主機
  2. 選擇好後,會自動開啟終端,並貼上使用者與密碼,可能網路不好,ssh會慢點,密碼在剪下板中,手動貼上即可,程式中延遲1s貼上密碼
    enter description here

相關推薦

mac ssh 自動登入

用applescript實現讀取配置檔案,選擇登入的ssh 使用者名稱與密碼,實現自動終端登入 年前入手macbook,由於工作需要通過ssh連線遠端伺服器,win系統經常用SecureCRT,mac也有,裝了還需破解,不清楚是mac 系統的原因還是什麼問題,

ssh自動登入

chm mod 腳本 方便 time 發現 自動 沒有 日誌 公司的服務器在國外,所以測試的查看日誌的時候需要測試機,然後繼續ssh 非常不方便,所以編寫一個簡單的ssh登入腳本 #!/usr/bin/expectset timeout 3spawn ssh name@ip

Centos 解決SSH 免密碼登入 以及Crontab製作定時SSH自動登入和關閉的指令碼

一、SSH免密碼登入 假設要登入的機器為192.168.1.100,當前登入的機器為192.168.1.101。 首先在101的機器上生成金鑰(如果已經生成可以跳過): $ ssh-keygen -t rsa一路回車即可。 然後在將生成的公鑰複製到機器100上的~/.ssh/authorized_ke

使用密匙讓putty(或ssh)自動登入Linux遇到幾個問題的解決方法

      在用SSH通過金鑰登入Linux時,遇到 server responded"No further authentication methods available" no more authentication methods a

linux expect詳解(ssh自動登入)

shell指令碼實現ssh自動登入遠端伺服器示例: #!/usr/bin/expect spawn ssh [email protected] expect "*password:" send "123\r" expect "*#" interact Expect是一個用來處理互動的命

linux下實現ssh自動登入遠端伺服器

前言:開發工作中,由於有時需要通過ssh登入遠端伺服器上去,每次都要輸入密碼,密碼很難記,感覺很麻煩,於是上網搜了通過 ssh自動登入遠端伺服器上去,從而免去了每次都要輸入密碼的困擾。 系統說明:本地機器:Redhat遠端機器:Redhat 步驟: A.本地機器需要做的修

ssh自動登入的shell,用expect

ssh連線遠端伺服器,涉及到輸入密碼過程,因此就需要互動,要用到expect. 1.MAC機器上安裝expect,是用homebrew安裝。           brew  install  expect 2.明確expect命令的路徑      which expect  

Mac ssh 遠端登入 無需密碼驗證 設定

開啟 mac 終端 第一步:生成金鑰。在終端下執行命令: ssh-keygen -t rsa 一路回車,各種提示按預設不要改, 生成的金鑰對id_rsa,id_rsa.pub,預設儲存在 ~/.ssh目錄 下  密碼預設為 空 ,等待執行完畢。然後執行下面命令檢視

iTerm2 實現 ssh 自動登入,並使用 Zmodem 實現快速傳輸檔案

> 原文連結:[https://fuckcloudnative.io/posts/iterm2-auto-login/](https://fuckcloudnative.io/posts/iterm2-auto-login/) 對於 YAML 工程師來說,我們經常需要 ssh 登入不同的伺服器,每次登入時都

mac 指令碼ssh自動密碼登入伺服器,非公鑰

安裝工具 brew install expect brew install spawn-fcgi 登入指令碼, 替換ip與密碼 #!/usr/bin/expect set user root

MAC便捷ssh直接登入遠端伺服器(免輸密碼)

-------- 之前用過linux開發,只有編輯bashrc檔案,增加alias可以製作自定義快捷命令,但是直接用ssh [email protected],需要強制輸入密碼 今天百度之後,發現一個新姿勢 expect指令碼,但是需要安裝一些東西。 expe

linux ssh 不用密碼自動登入的幾種方法

2. 控制n個機器如上所述自動登入 那就需要n對鑰匙(金鑰和公鑰), ssh-keygen 命令可以隨意更改鑰匙對的名字, 比如: # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save

python ssh批量登入 自動互動

用python來ssh遠端登入,如果用os.system('commod'),結果就是人機互動,跟不用也沒啥區別。 百度發現,可以用pexpect模組來實現自動互動。 # python3 import pexpect def ssh_cmd(ip, passwd):

linux shell ssh實現自動登入,並且執行一些操作並返回到當前主機

#!/usr/bin/expect -f #-------------------------------------------------- about us # product: monitorone # Author:matthew # Last Modified:

mac使用expect實現自動登入跳板機

之前一直手動輸入密碼來登入跳板機,換了新公司要跳兩次很麻煩  網上看到了expect很好用  記錄下 mac上安裝expect 和 ga-cmd使用expect實現自動登入的自行優化指令碼如下 #這個是expect互動的指令碼,支援輸入引數 #!/us

mac ssh免密登入 連線遠端伺服器

ssh的概念我就不介紹了,直接上乾貨!!!!要配置ssh免密登入 首先要進入~/.ssh/目錄:cd ~/.ssh/如果提示錯誤資訊:     cd: no such file or directory: ~/.ssh , 則需要新增 ssh key:ssh-keygen -

ssh自動輸入密碼登入伺服器/ssh免輸入密碼登入/非互動ssh 密碼驗證

原文連結:http://hi.baidu.com/sdusoul/item/6a69b6953853e630326eeb21 由於經常需要登入一些遠端的伺服器,每次都需要將密碼重輸一遍,如下:#ssh 使用者名稱@我的伺服器的ip使用者名稱@我的伺服器的ip's pass

Mac ssh使用pem檔案登入遠端伺服器

登入遠端伺服器我們可以使用ssh命令,部分遠端伺服器訪問需要授權,ssh命令支援使用pem檔案進行授權訪問。 命令如下: ssh -i identity_file user@hostname

Mac下配置ssh無密碼登入遠端伺服器

記錄目的: 1. 使用ssh建立通道,進行資料傳輸; 2. Mac上實現遠端無密碼訪問 具體步驟 Mac上生成密匙對 ssh-keygen 配置~/.ssh/config

mac使用ssh-keygen和ssh-copy-id三步實現SSH無密碼登入

ssh-keygen :產生公鑰與私鑰對. ssh-copy-id :將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~.