阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

建立Linux ssh信任及常见问题解决办法

178次阅读
没有评论

共计 3026 个字符,预计需要花费 8 分钟才能阅读完成。

建立 Linux ssh 信任及常见问题解决办法

1、生成本地服务器 ssh 私钥,如已存在,可忽略。
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

一路回车,会在本地家目录~/.ssh/ 生成密钥文件,检查如果存在,则可忽略。(更多 ssh-keygen 使用帮助,见 ssh-keygen -h)
生成以后,如下:
$ls -ltra ~/.ssh/id_rsa*
-rw-r–r–. 1 root root  408 May  4 13:20 /root/.ssh/id_rsa.pub
-rw——-. 1 root root 1675 May  4 13:20 /root/.ssh/id_rsa

2、ssh 登陆远端服务器,开通防火墙,如已开通,可忽略
$/sbin/iptables -I INPUT -i eth0 -s 10.10.10.10 -p tcp -m tcp –dports 22 -j ACCEPT

开通防火墙以后,确认本地 ssh 10.10.10.11 22 能通(假设本地服务器 IP:10.10.10.10,远端服务器 IP 为:10.10.10.11)

3、确认远端服务器存在~/.ssh/authorized_keys 文件及对应目录,不存在则创建、否者可忽略。
$ls -ltra ~/ | grep ssh
drwx——.  2 root root      4096 May  4 13:38 .ssh
$ls -ltr .ssh/authorized_keys
-rw——-. 1 root root 408 May  4 13:38 .ssh/authorized_keys

注意:文件~/.ssh/authorized_keys 的权限必须为 600,目录~/.ssh/ 权限为 700,用户家目录权限也必须是 700,否者信任会失效。

4、拷贝本机生成的公钥文件(~/.ssh/id_rsa.pub)内容追加到远端服务器~/.ssh/authorized_keys 中
$cat .ssh/id_rsa.pub

粘贴如上文件中的内容至目标服务器~/.ssh/authorized_keys 中。

5、如觉得麻烦,可忽略 3 - 4 两步操作,使用 ssh-copy-id 命令一步到位。
$ssh-copy-id -i ~/.ssh/id_rsa.pub 10.10.10.11
 
$ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

完成以后,正常情况下,我们就可以本地无密码直接 ssh 登陆远端服务器了。
如将本地用户 luser 公钥内容追加到远端用户 ruser 家目录~/.ssh/authorized_keys 文件中,那么本地用户就可以 ssh ruser@10.10.10.11(远端 ip),需要访问用户的对应关系一定要搞清楚了。

6、非正常情况,我们会遇到一些错误,即使按照上面的步骤做完了以后,依然无法无密码登陆。
确认防火墙 OK

确认远端~/.ssh/authorized_keys 文件权限正确,并没有串行的情况。

确认公钥正确

快速使用 ssh -vvv ip 查看执行详细过程有无报错,并根据实际情况进行排查

查看 /var/log/audit/audit.log 远端日志报错

检查远端目标服 /etc/ssh/sshd_config 及本地 /etc/ssh/ssh_config 配置是否正常

尝试重启 sshd 服务

7、开启 sellinux 以后 ssh 需使用密码登陆。
如下查看文件的安全上下文:
# ls -laZ .ssh/
drwx——  root root ?                                .
dr-xr-x—. root root system_u:object_r:admin_home_t:s0 ..
-rw-r–r–  root root ?                                authorized_keys
-rwx——  root root ?                                id_dsa
-rwx——  root root ?                                id_dsa.pub
-rwx——  root root ?                                id_rsa
-rwx——  root root ?                                id_rsa.pub

如上,我的.ssh 目录文件的安全上下文跟正常的不配,使用 restorecon -r -vv .ssh/ 修复,并将 sellinux 设置为 enforcing,并重启服务器以后生效。

修复以后如下:
# ls -laZ .ssh/
drwx——. root root system_u:object_r:ssh_home_t:s0  .
dr-xr-x—. root root system_u:object_r:admin_home_t:s0 ..
-rw-r–r–. root root system_u:object_r:ssh_home_t:s0  authorized_keys
-rwx——. root root system_u:object_r:ssh_home_t:s0  id_dsa
-rwx——. root root system_u:object_r:ssh_home_t:s0  id_dsa.pub
-rwx——. root root system_u:object_r:ssh_home_t:s0  id_rsa
-rwx——. root root system_u:object_r:ssh_home_t:s0  id_rsa.pub

如果你发现如上面所显示的那样.ssh 目录不是 ssh_home_t,使用 restorecon -r -vv /home/ 恢复目录文件安全上下文。

这种情况通常是因为我们最初 home 分区挂载根目录,未单独分区,格式化新分区并挂载家目录以后会导致这样的问题。

同样可以使用 setenforce 0 把 SELinux 关闭(或修改 /etc/selinux/config 文件重启生效), 不必修复文件安全上下文。

# getenforce 
Disabled
[root@dbbak_bj_10 ~]# setenforce 
usage:  setenforce [Enforcing | Permissive | 1 | 0]

提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm

开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

如何为 Linux 系统中的 SSH 添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm

在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm

Linux 上 SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm

SSH 入门学习基础教程 http://www.linuxidc.com/Linux/2014-06/103008.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3026字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中