ssh 无密码验证 及 ssh localhost 仍然需要密码的解决方案

1、安装ssh

直接 sudo apt-get install openssh-server

2、查看ssh运行状态 

ps -e | grep ssh

如果发现 sshd 和 ssh-agent 即表明 ssh服务基本运行正常

3、生成公钥和私钥

ssh-keygen -t rsa -P ""

4、将公钥追加到文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5、测试ssh localhost

如果发现不用输入密码就可以登录那么 ssh无密码机制就算建立成功了。

6、失败原因之一:.ssh及其下属子文件的权限问题:

首选.ssh目录权限是700, 两个dsa 和 rsa的 私钥权限是600,其余文件权限是644.

下面列出.ssh目录及子文件的权限表:

drwx------  2 hadoop hadoop 4096 2014-06-02 15:32 .
drwxr-xr-x 34 hadoop hadoop 4096 2014-06-02 15:06 ..
-rw-r--r--  1 hadoop hadoop 2252 2014-06-02 15:32 authorized_keys
-rw-------  1 hadoop hadoop  668 2014-06-02 15:11 id_dsa
-rw-r--r--  1 hadoop hadoop  615 2014-06-02 15:11 id_dsa.pub
-rw-------  1 hadoop hadoop 1675 2014-06-02 15:32 id_rsa
-rw-r--r--  1 hadoop hadoop  407 2014-06-02 15:32 id_rsa.pub
-rw-r--r--  1 hadoop hadoop  442 2014-06-02 15:08 known_hosts
7、.ssh的父目录的权限问题(我的问题就出现在这里):

.ssh的父目录文件权限应该是755,即所属用户的 用户文件 (/home下属的一个用户文件)。

### 解决 SSH 连接本地主机时遇到权限被拒绝(公钥)的问题 当尝试通过 `ssh localhost` 建立连接并收到错误消息 `"Permission denied (publickey)"` 时,这通常意味着客户端无法成功验证其身份给服务器。以下是详细的解决方案: #### 验证现有 SSH 密钥对的存在与否 首先确认是否有现成的私钥和对应的公钥存在于默认路径下。 ```bash ls ~/.ssh/ ``` 若未发现名为 `id_rsa.pub` 的文件,则说明尚未创建过密钥对[^2]。 #### 创建新的 SSH 密钥对 一旦确定缺少必要的密钥对,可以通过下面这条指令来生成它们;过程中可以选择是否为新生成的私钥设定访问密码。 ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令会引导用户完成一系列交互式提问,在大多数情况下只需按回车键接受默认设置即可。 #### 启动 SSH Agent 并加载私钥 为了使当前终端环境能够识别刚刚产生的私钥,需先启动 SSH 认证代理服务再向其中加入目标私钥。 ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 对于某些特殊情况可能需要额外处理才能让 `ssh-add` 正常工作,比如先运行 `ssh-agent bash` 来开启一个新的 shell 实例。 #### 更新远程端授权列表 确保将本地用户的公钥内容追加至 `.ssh/authorized_keys` 文件内,并调整该文件权限以防止潜在的安全风险。 ```bash cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` 这样做之后,每当发起基于公钥的身份认证请求时,SSH 守护进程就会自动查找这个文件里的匹配项来进行校验操作[^3]。 #### 检查 SSHD 配置文件 最后一步是要审查 `/etc/ssh/sshd_config` 中有关允许登录用户的配置条目,特别是 `AllowUsers` 参数的具体取值范围。如果有严格限定的话可能会阻止特定账号正常使用 SSH 功能[^4]。 ---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值