首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Paramiko -Python 3本地ssh到mac OSX

Paramiko -Python 3本地ssh到mac OSX
EN

Stack Overflow用户
提问于 2018-08-06 01:02:16
回答 1查看 697关注 0票数 -1

感谢你阅读这篇文章。

对象

使用Python3,我想向我本地的Mac计算机发送SSH命令。经过研究,我找到了帕拉米科来帮助我,但我对其他语言持开放态度

设置

两台计算机(我的windows计算机和目标mac osx计算机)都有彼此知道的私钥/公钥,所以为了恢复,我可以手动ssh而不需要密码,它可以工作。我只使用python 3来做这些操作。

尝试

你可以在下面找到我的代码:

代码语言:javascript
复制
import paramiko

hostname = 'MyUser@macbook-air-de-louis.home'
port = 22
username = 'MyUserName'
pkey_file = 'C:/Users/MyUserName/.ssh/id_rsa'

if __name__ == "__main__":
    key = paramiko.RSAKey.from_private_key_file(pkey_file)
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.connect(hostname, port, pkey=key)
    stdin, stdout, stderr = s.exec_command('ifconfig')
    print(stdout.read())
    s.close()

结果错误

以下错误如下:

代码语言:javascript
复制
Traceback (most recent call last):
  File "jr.py", line 23, in <module>
    s.connect(hostname, port, pkey=key)
  File "D:\Documents\ana\lib\site-packages\paramiko\client.py", line 329, in connect
    to_try = list(self._families_and_addresses(hostname, port))
  File "D:\Documents\ana\lib\site-packages\paramiko\client.py", line 200, in _families_and_addresses
    hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM)
  File "D:\Documents\ana\lib\socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11003] getaddrinfo failed

编辑

特别感谢@Kenster我更改了IP地址,我有以下错误,你知道我错过了什么吗?

代码语言:javascript
复制
    s.connect(hostname, port, pkey=key)
  File "D:\Documents\ana\lib\site-packages\paramiko\client.py", line 424, in connect
    passphrase,
  File "D:\Documents\ana\lib\site-packages\paramiko\client.py", line 714, in _auth
    raise saved_exception
  File "D:\Documents\ana\lib\site-packages\paramiko\client.py", line 691, in _auth
    self._transport.auth_publickey(username, key))
  File "D:\Documents\ana\lib\site-packages\paramiko\transport.py", line 1450, in auth_publickey
    return self.auth_handler.wait_for_response(my_event)
  File "D:\Documents\ana\lib\site-packages\paramiko\auth_handler.py", line 226, in wait_for_response
    raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 05:18:38

代码语言:javascript
复制
hostname = 'MyUser@macbook-air-de-louis.home'
username = 'MyUserName'
...
socket.gaierror: [Errno 11003] getaddrinfo failed

您正在使用的主机名MyUser@macbook-air-de-louis.home无效。您的脚本正在尝试将您的主机名解析为一个地址,但失败了。看起来你给它加上了用户名的前缀,这是不正确的。

尝试使用"macbook-air-de-louis.home“作为主机名,不带"MyUser@”部分。如果仍然不起作用,请尝试使用远程系统的IP地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51696454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档