配置ssh基于public key认证

本文探讨了SSH连接中遇到的权限问题,包括通过用户名和口令、publickey方式实现客户端认证的过程。重点介绍了在遇到登录时仍需输入密码的情况时,通过调整.ssh目录权限的解决方案,并解释了权限过大可能带来的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ssh连接可以以用户名和口令的形式来连接也可以采用public key方式来实现客户端的认证。这也就是通常大家所说的免输密码的方式登录。

在实际操作的时候,只需要做很少的工作:

1)在client端使用ssh-keygen命令生成公钥和私钥

2)  拷贝client端的公钥到服务器端,可以使用scp命令

3)  将公钥中的内容写入到服务器的~/.ssh/authorized_keys文件中:cat id_rsa.pub >> ~/.ssh/authorized_keys

正常情况下这样就搞定了,linux比较好玩的就是经常容易发生一些意外的小插曲,解决这些意外的小插曲常常也会带来一些意外的小收获。今天我就又遇上了一段小插曲,一切操作正常,但就是还得输密码,参看各种书籍资料之后终于找到问题了,在这里有解释:http://www.openssh.com/faq.html#3.14

 写道
Typically this is caused by the file permissions on $HOME, $HOME/.ssh or $HOME/.ssh/authorized_keys being more permissive than sshd allows by default.

In this case, it can be solved by executing the following on the server.

$ chmod go-w $HOME $HOME/.ssh
$ chmod 600 $HOME/.ssh/authorized_keys $ chown `whoami` $HOME/.ssh/authorized_keys
If this is not possible for some reason, an alternative is to set StrictModes no in sshd_config, however this is not recommended.
 我的问题是出在.ssh目录的权限过大,之前是775,chmod -R go-w .ssh之后问题就解决了,不是很能理解为什么权限过大了会有问题,如果权限有问题那也是权限过小时有问题,总之问题解决了并且进一步熟悉了linux对文件权限的管理
### 配置Dropbear SSH服务器实现公钥认证 为了使Dropbear支持基于公钥的身份验证,需执行几个特定的操作来设置环境。这包括生成密钥对以及配置服务器接受这种形式的认证。 #### 客户端操作 在客户端机器上,应先利用`ssh-keygen`工具创建SSH密钥对: ```bash ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_dropbear ``` 上述命令会生成一对RSA类型的私钥和公钥文件,默认保存于用户的`.ssh`目录下,并命名为`id_rsa_dropbear`(私钥)与`id_rsa_dropbear.pub`(公钥)。这里指定了2048位长度以增强安全性[^1]。 #### 准备公钥上传至服务端 接着把刚刚产生的公钥复制到目标远程主机上的指定位置,通常位于根用户或其他登录账户下的`.ssh/authorized_keys`文件内。可以借助SCP协议完成传输工作: ```bash scp ~/.ssh/id_rsa_dropbear.pub user@remote:/tmp/dropbear_key.pub ``` 此过程模拟了类似于SSL证书请求提交的方式,只是对象变成了用于身份验证的公钥。 #### 修改服务端配置 随后,在服务端编辑Dropbear的相关配置文件——通常是`/etc/default/dropbear`或`/etc/init.d/dropbear`视具体发行版而定,确保启用了公钥认证功能并允许连接来自客户端的尝试: ```bash DROPBEAR_EXTRA_ARGS="-R" echo "command=\"sh /bin/bash\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding $(cat /tmp/dropbear_key.pub)" >> ~root/.ssh/authorized_keys chmod 700 ~root/.ssh; chmod 600 ~root/.ssh/authorized_keys service dropbear restart ``` 以上脚本片段实现了向授权键列表添加新条目,并设置了适当权限以便安全运行。 通过这些步骤之后,当再次尝试从已注册过的客户机发起SSH会话时,则不再需要输入密码即可顺利完成登陆流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值