解决Enter passphrase for key

本文介绍了两种解决SSH登录过程中出现问题的方法:一是调整公钥权限为600以解决权限过宽的问题;二是通过ssh-agent和ssh-add命令实现SSH免密登录,并提供了持久化的方案。

两种解决方案:

1.提示“ Permissions 0644 for ‘~/.ssh/id_rsa.pub’ are too open”

解决方法:使用chmod 0600 ~/.ssh/id_rsa.pub更改将公钥权限改成“600”

2.提示“Enter passphrase for key ~/.ssh/id_rsa.pub”让输入私钥,可不论输与不输都不能直接登录

解决方法:
在本地执行:

eval `ssh-agent` 
ssh-add

ssh-agent是用于管理密钥,ssh-add用于将密钥加入到ssh-agent中,SSH可以和ssh-agent通信获取密钥,这样就不需要用户手工输入密码了。
顺序执行以上两条命令后就可以用ssh免密登录远程机器了,但这个配置只对当前会话生效,会话关闭或机器重启后都需要重新执行这两条命令。将命令放到~/.bash_profile中,就可以免去每次输入的麻烦。

转载地址:https://blog.youkuaiyun.com/superbfly/article/details/75287741

保存密码

ssh-add -K path/to/key,然后输入密码,之后就不用次次输入密码了;

macOS keeps asking my ssh passphrase since I updated to Sierra

In the latest version of macOS (10.12.2), this is easy to fix. Just edit your ~/.ssh/config and enable the UseKeychain option:

Host *
    UseKeychain yes

There is no need to change anything else. Now everything works the way it used to work before the latest updates. You do not need to add keys to ssh-agent.
转载地址:https://superuser.com/questions/1127067/macos-keeps-asking-my-ssh-passphrase-since-i-updated-to-sierra

在使用SSH密钥进行身份验证时,如果用户被提示输入私钥的密码短语(passphrase),这通常是因为私钥文件在生成时设置了密码保护。这种提示是SSH客户端要求用户输入用于解锁私钥的密码短语[^1]。 ### 常见场景 - **SSH连接服务器**:当使用带有密码短语的私钥文件(如`id_rsa`)连接远程服务器时,SSH客户端会提示输入密码短语。 - **Passphrase的作用**:密码短语为私钥提供额外的安全保护层,即使私钥文件被泄露,攻击者也无法直接使用它进行身份验证。 ### 如何避免每次连接都输入Passphrase 如果希望避免每次连接时都需要输入密码短语,可以使用`ssh-agent`工具来管理私钥。`ssh-agent`是一个用于管理SSH私钥的程序,它可以临时存储解密后的私钥,并在需要时自动提供给SSH客户端。 #### 使用`ssh-agent`的步骤 1. **启动`ssh-agent`**(Linux/macOS): ```bash eval $(ssh-agent) ``` 2. **将私钥添加到`ssh-agent`**: ```bash ssh-add ~/.ssh/id_rsa ``` 此时会提示输入密码短语,输入后私钥将被缓存。 3. **验证私钥是否已添加成功**: ```bash ssh-add -l ``` 该命令会列出已添加到`ssh-agent`中的所有私钥。 4. **连接远程服务器**: ```bash ssh user@remote_host ``` 此时无需再次输入密码短语。 ### 修改或删除Passphrase 如果不再需要密码短语,可以通过以下命令修改或删除它: ```bash ssh-keygen -p ``` 系统会提示输入私钥文件路径(默认为`~/.ssh/id_rsa`),然后要求输入当前密码短语,并允许设置新密码短语或留空以删除现有密码短语。 ### 注意事项 - **权限问题**:确保私钥文件的权限设置正确,通常应为`0600`,即仅所有者可读写。如果权限过于开放(如`0664`),SSH客户端可能会拒绝使用该私钥[^2]。 ```bash chmod 600 ~/.ssh/id_rsa ``` - **主机密钥变更**:如果远程主机的SSH密钥发生更改,可能会提示`WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`。此时应清除旧的主机密钥: ```bash ssh-keygen -R remote_host_ip ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值