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

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

命令如下:

ssh -i identity_file user@hostname

例如:

ssh -i key.pem root@192.168.2.100

如果执行后出现以下错误,表示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

修改后错误提示消失,可正常登录。


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

ssh-add -K key.pem

ssh root@192.168.2.100
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答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`。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值