利用pexpect登入SSH伺服器

2021-09-29 09:52:00 字數 1523 閱讀 1673

執行下面指令碼之前你需要先開啟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 ...