linux ssh 命令 密码错误,linux中ssh密钥登录失败解决办法

今天我在设置ssh密钥登录的时候,发现这个奇怪的情况,我将我的id_rsa.pub密钥内容拷贝到远程linux主机的A用户的.ssh下的authorized_keys(这个文件我手动建立的)下,但是再次登录时,发现还需要输入密码,额?这不科学!然后我查看了一下远程linux主机的sshd日志 /var/log/secure 发现了如下日志输出内容:

Authentication refused: bad ownership or modes for file /home/sysadmin/.ssh/authorized_keys

意思是我的authorized_keys权限问题,我查看一下该文件权限

[root@Zenoss .ssh]# ll authorized_keys

-rw-rw-r-- 1 sysadmin sysadmin 791  8月 10 09:01 authorized_keys

随后我查看了一下其它服务器通过ssh-copy-id 命令拷贝生成的authorized_keys文件权限

[root@Zenoss .ssh]# ll authorized_keys

-rw------- 1 sysadmin sysadmin 393  8月 10 09:46 authorized_keys

果然权限是不同的,我把authorized_keys文件权限改到600,之后就可以正常密钥登录了。

为了搞清楚这是原因,我查阅了一下官方的文档 http://man.openbsd.org/sshd_config 发现了一个这样的配置参数

StrictModes

Specifies whether sshd(8) should check file modes and ownership of the user’s files and

home directory before accepting login. This is normally desirable because novices

sometimes accidentally leave their directory or files world-writable. The default

is “yes”. Note that this does not apply to ChrootDirectory, whose permissions and

ownership are checked unconditionally.

意思是:sshd在接受登录前检查会检查用户的家目录和文件权限模式,可以通过设置no来关闭检查,但为了安全起见,建议不要更改此选项,配置好家目录和文件权限才是正解!

正常的权限如下:

[root@Zenoss home]# ls -ld sysadmin/

drwx------. 7 sysadmin sysadmin 4096  8月 10 09:46 sysadmin/

[root@Zenoss sysadmin]# ls -ld .ssh/

drwx------. 2 sysadmin sysadmin 4096  8月 10 09:46 .ssh/

[root@Zenoss .ssh]# ls -l authorized_keys

-rw------- 1 sysadmin sysadmin 393  8月 10 09:46 authorized_keys

正常通过ssh-copy-id 命令自动生成的authorized_keys 就是600,就不会出现上述问题了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH: $ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 下面的例子表明该系统正在使用SSH2: $ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu 2、用SSH登录到远程主机 当你第一次使用ssh登录远程主机时,会出现没有找到主机密钥的提示信息。输入"yes"后,系统会将远程主机的密钥加入到你的主目录下的 .ssh/hostkeys下,这样你就可以继续操作了。示例如下: 1 2 3 4 5 6 7 8 localhost$ ssh -l jsmith remotehost.example.com Host key not found from database. Key fingerprint: xabie-dezbc-manud-bartd-satsy-limit-nexiu-jambl-title-jarde-tuxum You can get a public key‘s fingerprint by running % ssh-keygen -F publickey.pub on the keyfile. Are you sure you want to continue connecting (yes/no)? Yes Host key saved to /home/jsmith/.ssh2/hostkeys/key_22_remotehost.example.com.pub host key for remotehost.example.com, accepted by jsmith Mon May 26 2008 16:06:50 -0700 [email protected] password: remotehost.example.com$ 因为远程主机的密钥已经加入到ssh客户端的已知主机列表,当你第二次登陆远程主机时,只需要你输入远程主机的登录密码即可。 1 2 3 localhost$ ssh -l jsmith remotehost.example.com [email protected] password: remotehost.example.com$ 由于各种原因,可能在你第一次登陆远程主机后,该主机的密钥发生改变,你将会看到一些警告信息。出现这种情况,可能有两个原因: o 系统管理员在远程主机上升级或者重新安装了SSH服务器 o 有人在进行一些恶意行为,等等。 在你输入“yes”之前呢,最佳的选择或许是联系你的系统管理员来分析为什么会出现主机验证码改变的信息,核对主机验证码是否正确。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 localhost$ ssh -l jsmith remotehost.example.com @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the- middle attack)! It is also possible that the host key has just been changed. Please contact your system administrator. Add correct host key to ―/home/jsmith/.ssh2/hostkeys/key_22_remotehost.example.com.pub‖ to get rid of this message. Received server key's fingerprint: xabie-dezbc-manud-bartd-satsy-limit-nexiu-jambl-title-arde-tuxum You can get a publ

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值