執行下面指令碼之前你需要先開啟ssh服務
service ssh start
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pexpect
prompt =
['# '
,'>>> '
,'> '
,'\$ '
]def
send_command
(child, cmd)
:#傳送命令
child.sendline(cmd)
child.expect(prompt)
#返回命令執行結果
print child.before
#連線目標ssh伺服器
#感覺很類似你手工登入ssh一樣流程,一樣的提示
#expect函式是在螢幕上列印提示訊息
defconnect
(user, host, password)
: ssh_newkey =
'are you sure you want to continue connecting'
connstr =
'ssh '
+ user +
'@'+ host
#生成乙個 spawn 類的物件
child = pexpect.spawn(connstr)
ret = child.expect(
[pexpect.timeout, ssh_newkey,\
'[p|p]assword:'])
#expect返回為0表示錯誤
#成功的話就傳送乙個yes訊息
if ret ==0:
print
'[-] error connecting'
return
if ret ==1:
child.sendline(
'yes'
) ret = child.expect(
[pexpect.timeout, \
'[p|p]assword:'])
if ret ==0:
print
'[-] error connecting'
return
child.sendline(password)
child.expect(prompt)
return child
defmain()
: host =
'127.0.0.1'
user =
'root'
password =
'toor'
child = connect(user, host, password)
send_command(child,
'cat /etc/shadow | grep root'
)if __name__ ==
'__main__'
: main(
)
Ubuntu學習筆記 通過ssh遠端登入伺服器
首先在伺服器上安裝ssh的伺服器端。sudo aptitude install openssh server 2.啟動ssh server。etc init.d ssh restart 3.確認ssh server已經正常工作。netstat tlp tcp6 0 0 ssh listen 看到上面...
Mac下使用iTerm2自動ssh登入伺服器
在 ssh 下面寫乙個指令碼,配置到iterm2的profiles裡 當然放在其他地方也可以 指令碼內容如下 usr bin expect f set user 使用者名稱 set host 儲存到 ssh shellname,如果密碼中有符號可 以在 符號可以在 符號可以 在符號前面加個反斜槓進行...
Mac下使用iTerm2自動ssh登入伺服器
1 cd ssh 在.ssh下建立檔案 shell 其中綠色部分 替換為自己的使用者名稱 伺服器ip 密碼 usr bin expect f 2 set user 使用者名稱 3set host 伺服器ip 4set password 登入伺服器的密碼 5set timeout 167 spawn ...