Python遠程linux執行命令實現

      網友投稿 1113 2025-03-31

      1、遠程登錄到linux上,使用到的模塊paramiko

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      #遠程登陸操作系統

      def ssh(sys_ip,username,password,cmds):

      try

      #創建ssh客戶端

      client = paramiko.SSHClient()

      #第一次ssh遠程時會提示輸入yes或者no

      client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

      #密碼方式遠程連接

      client.connect(sys_ip, 22, username=username, password=password, timeout=20)

      #互信方式遠程連接

      #key_file = paramiko.RSAKey.from_private_key_file("/root/.ssh/id_rsa")

      #ssh.connect(sys_ip, 22, username=username, pkey=key_file, timeout=20)

      #執行命令

      stdin, stdout, stderr = ssh.exec_command(cmds[key])

      #獲取命令執行結果,返回的數據是一個list

      result = stdout.readlines()

      return result

      except Exception, e:

      print e

      finally:

      client.close()

      if __name__=="__main__":

      sys_ip = "192.168.0.102"

      username = "root"

      password = "1"

      cmds = "pwd"

      print ssh(sys_ip,username,password,cmds)

      此處有個主意點,我遇到了,在密碼登陸的時候,同樣的python連接代碼,放在python腳本里面執行就是報下面的錯,但是將代碼拷貝到python的交互模式下執行就是成功的,這個時候就是需要看下要遠程的用戶ssh配置是不是只支持鍵盤交互、密鑰驗證,如果是這樣的話,使用密碼遠程登錄就會報下面的錯誤

      File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 337, in connect

      self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)

      File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 528, in _auth

      raise saved_exception

      AuthenticationException: Authentication failed.

      File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 337, in connect

      self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)

      File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 528, in _auth

      Python遠程linux執行命令實現

      raise saved_exception

      paramiko.SSHException: No existing Session

      這個是因為linux會檢測遠程連接有沒有tty(鍵盤交互),腳本方式運行的時候就沒有鍵盤交互,看網上有在connect加,allow_agent=False,look_for_keys=False這2個參數解決的,但是我的沒有解決,ssh.connect('localhost',username=name,password=pw,allow_agent=False,look_for_keys=False)

      2、使用ssh,需要使用到shell命令expect

      首先創建一個shell腳本remotExect.sh

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      #!/usr/bin/expect

      set timeout 2

      set local_file [lindex $argv 0]

      set username? [lindex $argv 1]

      set password? [lindex $argv 2]

      set hostname? [lindex $argv 3]

      set remote_file [lindex $argv 4]

      spawn scp $local_file $username@$hostname:$remote_file

      expect {

      "yes/no"#是為了捕獲首次登錄,要手動輸入yes/no的情況

      {send "yes\r";}

      "password:"#為例捕獲需要輸入密碼的行為

      {send "$password\r";}

      }

      expect eof

      然后在python中執行

      1

      2

      3

      import os

      cpFileCmd = "./remotecp.sh 1.txt root 1 192.168.0.102 /opt/1.txt"

      os.system(cpFileCmd)

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel2007多條件求和公式的使用方法
      下一篇:iOS基礎: RACMulticastConnection使用步驟
      相關文章
      国产亚洲精AA在线观看SEE| 亚洲成A人片在线观看无码3D| 久久久久国产成人精品亚洲午夜| 无码不卡亚洲成?人片| 亚洲熟妇无码AV不卡在线播放 | 91精品国产亚洲爽啪在线影院| 亚洲精品无码精品mV在线观看| 亚洲一区二区三区影院| 丁香五月亚洲综合深深爱| 国产成人麻豆亚洲综合无码精品 | 亚洲精品无码久久久久久久| 亚洲综合综合在线| 亚洲性猛交xx乱| 亚洲大香伊人蕉在人依线| 亚洲国产成人久久99精品| 亚洲一区二区三区久久| 亚洲综合中文字幕无线码| 亚洲综合精品第一页| 亚洲另类自拍丝袜第五页| 亚洲AV电影天堂男人的天堂| 亚洲AV无码之日韩精品| 国产a v无码专区亚洲av | 久久精品国产亚洲AV久| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲日本国产综合高清| 亚洲精品无码mⅴ在线观看 | 亚洲一区二区三区日本久久九| 亚洲第一页在线播放| 亚洲中文字幕人成乱码| 2020久久精品亚洲热综合一本 | 亚洲日韩乱码中文无码蜜桃臀网站| 国产精品亚洲аv无码播放| 久久精品亚洲日本佐佐木明希| 亚洲黄色片在线观看| 亚洲不卡视频在线观看| 亚洲精品成a人在线观看☆| gogo全球高清大胆亚洲| 国产亚洲精品精品国产亚洲综合| 精品亚洲综合在线第一区| 亚洲麻豆精品果冻传媒| 成人区精品一区二区不卡亚洲|