系統環境:centos7
先做好ssh金鑰登陸的配置,簡單一些說就是將a機器的/root/.ssh/id_rsa.pub的內容追加到b機器的/root/.ssh/authorized_keys當中
從而以root使用者的資格在a機器實現對b機器的金鑰認證登陸
python的指令碼如下:
[root@v71 python]# cat 5s.py
#!/usr/bin/python
# -*- coding:utf-8 -*-
import paramiko
import sys
def sshexeccmd(ip,cmd):
try:
ssh = paramiko.sshclient()
#add to host_allow
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())
# pkey = paramiko.rsakey.from_private_key_file('/home/super/.ssh/id_rsa', password='yourpassword')
pkey = paramiko.rsakey.from_private_key_file('/root/.ssh/id_rsa')
ssh.connect(hostname=ip,
port=22,
username='root',
pkey=pkey)
stdin, stdout, stderr = ssh.exec_command("ifconfig")
print(stdout.read())
print(stderr.read())
ssh.close()
except exception,e:
print e
if __name__ =='__main__':
if len(sys.argv) != 3:
print 'python pyfile ip cmd'
sys.exit()
print 'host: %s' % sys.argv[1]
print 'cmd: %s' % sys.argv[2]
sshexeccmd(sys.argv[1],sys.argv[2])
print '$' * 100
執行效果:
[root@v71 python]# python 5s.py 192.168.156.72 ifconfig
host: 192.168.156.72
cmd: ifconfig
eno16777736: flags=4163mtu 1500
inet 192.168.156.72 netmask 255.255.255.0 broadcast 192.168.156.255
inet6 fe80::20c:29ff:fe40:7a2f prefixlen 64 scopeid 0x20
ether 00:0c:29:40:7a:2f txqueuelen 1000 (ethernet)
rx packets 86458 bytes 68290823 (65.1 mib)
rx errors 0 dropped 0 overruns 0 frame 0
tx packets 69211 bytes 19138737 (18.2 mib)
tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (local loopback)
rx packets 4 bytes 420 (420.0 b)
rx errors 0 dropped 0 overruns 0 frame 0
tx packets 4 bytes 420 (420.0 b)
tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:87:fc:af txqueuelen 0 (ethernet)
rx packets 0 bytes 0 (0.0 b)
rx errors 0 dropped 0 overruns 0 frame 0
tx packets 0 bytes 0 (0.0 b)
tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0
檢測遠端埠是否開通 ssh通過 pem金鑰登入
檢測遠端埠 1 常用telnet 110.101.101.101 80方式測試遠端主機埠是否開啟 window 安裝telnet 控制面板 開啟或關閉windows功能 選擇 telnet 客戶端 linux ubuntu sudo apt get install xinetd telnetd ce...
ssh通過金鑰進行驗證
ssh在兩台機器之間建立乙個安全通道,加密所有的資料。比如機器a通過ssh登入到機器b 機器a為ssh客戶端,機器b為ssh伺服器 1 確認在機器b上有乙個帳號。2 在機器a上生成金鑰對 ssh keygen t rsa 第一行輸入存放金鑰對的目錄,直接回車預設就行 自動存放在 ssh 目錄下,id...
ssh 通過rsa金鑰進行登入
ssh登入伺服器的方法大體上分為兩種 通過ssh使用使用者名稱密碼的方式登入 通過ssh使用金鑰對進行登入 本文主要闡述如何使用金鑰進行登入,以如如何管理多個金鑰對。即然是金鑰對,就說是兩個金鑰,我們把其中乙個需要存在本地計算機的金鑰稱為私鑰,把另乙個存放到伺服器的金鑰稱為公鑰。私鑰 要保護好的,不...