10/11/13

ssh 使用公钥登录问题(publickeys, Permission denied error)

状况描述:

1、新装系统服务器,直接mkdir .ssh 文件,并赋予700权限,copy到.ssh目录下公钥及密钥,客户端不能正常登录。

2、ssh-keygen 命令执行下来,.ssh文件生成。copy公钥及密钥到.ssh目录下,客户端正常登录

3、less /var/log/messages

Apr 20 00:16:12 vb-fc14-0 setroubleshoot: SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys.

For complete SELinux messages. run sealert -l 174e87e8-bec5-4ae6-840c-44994ad5e2b3

$ sealert -l 174e87e8-bec5-4ae6-840c-44994ad5e2b3

SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys.

Plugin sshd_root (91.4 confidence) suggests:

If you want to allow sshd to have read access on the authorized_keys file Then you must fix the labels. Do: /sbin/restorecon -Rv /root/.ssh

Plugin catchall (9.59 confidence) suggests:

If you believe that sshd should be allowed read access on the authorized_keys file by default. Then you should report this as a bug. You can generate a local policy module to allow this access. Do allow this access for now by executing:

$ grep sshd /var/log/audit/audit.log | audit2allow -M mypol
$ semodule -i mypol.pp

4、SELinux惹的祸,关闭SELinux解决问题
a、暂时关闭(重启后恢复)

setenforce 0

b、永久关闭(需要重启)

vi /etc/selinux/config
SELINUX=disabled

 

09/30/13

退出无响应的ssh连接

ssh 没有响应原因分析:

a、可能是客户端的问题

b、也可能是服务器端的问题

c、可能是客户端和服务器之间的网络问题

d、可能是客户端电脑休眠后连接断了或者网络断了

e、可能是 WiFi 信号不好

f、服务器挂了或者服务器上的 sshd 进程挂了

g、可能是技术问题,也可能是非技术问题

常遇到的情形是:

1、离开办公桌前忘了退出 ssh 会话

2、长时间 ssh 到服务器上,盖上 Mac 走人,之后你会发现那些没退出的 ssh 会话还挂在那里,无法退出、无法 Ctrl+C、无法做任何操作。

3、粗暴做法是直接关闭 Terminal 后,重新开一个新的;如果用的不是图形系统,没有窗口可以关闭,那还要启用另一个终端找到相关进程后 kill 掉

 

一个小技巧,在那些没退出的 ssh 会话里用 ~. “优雅” 的断开连接。

~.

查看一下 man 帮助文件发现已经有说明,惭愧的是用了这么多年 ssh 才发现有这么一招:

$ man ssh
...
ESCAPE CHARACTERS
     ...

     The supported escapes (assuming the default `~') are:

     ~.      Disconnect.