Mac ssh使用pem文件登录远程服务器

登录远程服务器我们可以使用ssh命令,部分远程服务器访问需要授权,ssh命令支持使用pem文件进行授权访问。

命令如下:

ssh -i identity_file user@hostname
1
例如:

ssh -i key.pem root@192.168.2.100
1
如果执行后出现以下错误,表示pem文件的权限太大,需要设置为只有拥有者读写权限(600)。

Permissions 0644 for ‘key.pem’ are too open. 
It is required that your private key files are NOT accessible by others. 
This private key will be ignored. 
Load key “key.pem”: bad permissions 
Permission denied (publickey).

修改pem文件权限

sudo chmod 0600 key.pem
1
修改后错误提示消失,可正常登录。 


如果需要长期登录远程服务器,可以使用ssh-add把pem文件添加,下次直接登录。

ssh-add -K key.pem

ssh root@192.168.2.100
--------------------- 
作者:傲雪星枫 
来源:CSDN 
原文:https://blog.csdn.net/fdipzone/article/details/79763632 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用如下代码使用PEM文件连接远程服务器:import pysftp# 定义服务器信息 host = 'host' port = 22 username = 'username' password = 'password'# 定义PEM文件路径 pem_file_path = 'path_to_pem_file'# 使用pysftp连接服务器 with pysftp.Connection(host, username=username, password=password, port=port, private_key=pem_file_path) as sftp: # 做更多的远程服务器操作 ... ### 回答2: 要使用pem文件连接远程服务器,首先需要确保已经有了pem文件,并且具有相应的权限。 以下是一个使用Python的paramiko库进行SFTP连接的示例代码: ```python import paramiko # 创建一个SSH客户端对象 client = paramiko.SSHClient() # 在客户端对象中加载系统的hostkeys文件 client.load_system_host_keys() # 自动添加目标服务器ssh密钥到本地的known_hosts文件中 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 使用pem文件进行认证 pem_file = "/path/to/pem/file.pem" client.connect('remote.server.com', username='your_username', key_filename=pem_file) # 创建一个SFTP客户端对象 sftp = client.open_sftp() # 示例:将本地文件上传到远程服务器 local_file = "/path/to/local/file.txt" remote_file = "/path/to/remote/file.txt" sftp.put(local_file, remote_file) # 示例:从远程服务器下载文件到本地 sftp.get(remote_file, local_file) # 关闭SFTP客户端连接 sftp.close() # 关闭SSH客户端连接 client.close() ``` 上述代码使用`paramiko`库创建了一个SSH客户端对象`client`,然后通过指定pem文件路径使用`connect`方法连接到远程服务器。接下来,我们使用`open_sftp`方法创建一个SFTP客户端对象`client`,然后可以使用`put`方法将本地文件上传到远程服务器,或使用`get`方法从远程服务器下载文件到本地。最后,我们需要分别关闭SFTP客户端连接和SSH客户端连接。 你需要将上述示例代码中的`/path/to/pem/file.pem`,`remote.server.com`,`your_username`,`/path/to/local/file.txt`等参数替换为实际的值来进行正确的操作。 ### 回答3: 连接远程服务器使用SFTP协议并使用.pem文件进行身份验证的过程,需要以下步骤: 1. 首先,确保已经从服务器管理员那里获得了.pem文件,并将其保存在本地计算机的安全位置。 2. 在计算机上安装一个支持SFTP的客户端,如FileZilla或WinSCP。 3. 打开客户端并点击“连接”或类似的按钮以创建一个新的SFTP连接。 4. 在连接设置中,输入远程服务器的IP地址或主机名。 5. 在用户名和密码字段中,通常留空。 6. 在客户端设置中寻找一个地方来指定.pem文件的路径。 7. 通过浏览或手动输入.pem文件的路径,将其导入到客户端中。 8. 点击“连接”或类似的按钮以建立与远程服务器的连接。 以下是一些示例代码,展示如何在Python中使用paramiko库进行SFTP连接和身份验证: ```python import paramiko def sftp_connect(hostname, username, pem_file_path): private_key = paramiko.RSAKey.from_private_key_file(pem_file_path) transport = paramiko.Transport((hostname, 22)) transport.connect(username=username, pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport) return sftp # 使用示例 hostname = '远程服务器IP地址或主机名' username = '远程服务器用户名' pem_file_path = '本地.pem文件路径' sftp = sftp_connect(hostname, username, pem_file_path) # 列出远程服务器上的文件 files = sftp.listdir('.') for file in files: print(file) # 上传本地文件远程服务器 sftp.put('本地文件路径', '远程文件路径') # 下载远程服务器上的文件到本地 sftp.get('远程文件路径', '本地文件路径') # 关闭连接 sftp.close() ``` 请注意,上述代码示例使用paramiko库。在运行代码之前,请使用pip安装paramiko库:`pip install paramiko`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值