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

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

远程登录服务器,使用ssh命令,例如使用的阿里云服务器
首先我们在阿里云服务器可以新建一个秘钥对,他会让你下载一个私钥,这个私钥只能下载一次(一个pem文件),如果你不小心丢了,那就只能重新新建在绑定一个啦

之后就可以用这个私钥访问我们的服务器,格式如下:

ssh -i xxx.pem user@IP

eg:

ssh -i key.pem root@192.168.1.1

如果需要长期登录服务器的话,我们使用ssh-add添加pem文件,下次登录的时候直接使用

ssh-add -K xxx.pem
ssh user@IP

如果一切正确,那就不用往下看了,
但是,很难受的是,出现报错

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘coco.pem’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

这个是因为pem文件权限过高,需要更改一下:

 chmod 600 coco.pem

之后再进行如上操作,就没问题了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值