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
需注意:當前游標所在的程式的快捷鍵衝突
- 選擇登陸的主機
- 選擇好後,會自動開啟終端,並貼上使用者與密碼,可能網路不好,ssh會慢點,密碼在剪下板中,手動貼上即可,程式中延遲1s貼上密碼
相關推薦
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, ~.