建立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,否者信任会失效。

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]] [[email protected]]machine

完成以后,正常情况下,我们就可以本地无密码直接ssh登陆远端服务器了。

如将本地用户luser公钥内容追加到远端用户ruser家目录~/.ssh/authorized_keys文件中,那么本地用户就可以ssh [email protected](远端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 文件重启生效)
  • 更多关于restorecon ,详见:http://l.51yip.com/search/restorecon
# getenforce 
Disabled
[[email protected]_bj_10 ~]# setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
时间: 2024-10-12 16:45:08

建立linux ssh信任的相关文章

linux主机之间建立ssh信任关系

需求: hostA 要免密码ssh登入 hostB,即建立ssh信任关系 实施: 1.hostA:在~/.ssh,创建ssh密钥对 执行命令 ssh-keygen -t rsa (要求输入的位置直接回车),默认生成密钥对文件 id_rsa 和 id_rsa.pub 2.hostB:在~/.ssh,修改信任文件authorized_keys 把 hostA 的公钥文件 id_rsa.pub 追加到 hostB 的~/.ssh/authorized_keys文件中 验证: hostA 要免密码ssh

Linux 配置双机SSH信任

Linux 配置双机SSH信任 一.实现原理 使用一种被称为"公私钥"认证的方式来进行ssh登录."公私钥"认证方式简单的解释是: 首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub:私钥文件:~/.ssh/id_rsa),然后把公钥放到服务器上(~/.ssh/authorized_keys),自己保留好私钥.当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了. 二.实验环境 A机:TS-DEV/10.0.

通过建立ssh信任,启动其他客户机的服务

1:以 root为例 [[email protected] deploy]# ssh-keygen 直接回车到底 通过ssh-cpoy-id自带脚本来拷贝公钥到客户机 命令格式: [[email protected] ~]# ssh-copy-idUsage: /usr/bin/ssh-copy-id [-i [identity_file]] [[email protected]]machine [[email protected] ~]# ssh-copy-id -i [email prote

建立集群间ssh信任关系

目的要求 一套集群里有10台主机,建立ssh信任关系,使集群内所有主机可以不输密码互相访问. 解决方法 1.在server1生成私钥 ssh-keygenssh-copy-id [email protected] scp -rp id_rsa [email protected]:root/.ssh/ 2.查看192.168.1.2上的私钥和 authorized_keys 1 root root 409 Jul 5 20:35 authorized_keys 1 root root 1675 J

批量部署ssh信任关系

要求1:大批量部署SSH信任关系,在A文件分发服务器上大批量部署WEB层面信任关系文件分发服务器为:10.0.3.9 登录用户为:zhangsan WEB层IP段:10.0.3.10~10.0.3.60 (1).请大批量在WEB层上建立zhangsan用户,并且在zhangsan家目下面创建一个.ssh目录(2).在3.9服务器上面,zhangsan用户是用ssh-genkey创建私钥匙和公钥,将公钥导出到authorized_keys这个文件,权限更改为600(3).将authorized_k

配置ssh信任(不通过密码验证ssh直接访问目标机器)

在日常的一些使用中,偶尔有不输入密码,直接通过ssh访问目标机器的需求.比如linux之间的rsync同步. 本篇文章中具体阐述了linux服务器之间的ssh信任的配置. 实验场景: A服务器:192.168.189.143 B服务器:192.168.189.144 实验目标: A服务器通过ssh访问B服务器,可无需输入密码,直接登陆. 配置步骤:    1:测试A服务器ssh登陆B服务器: 可以看到,未做任何配置前,ssh登陆是需要输入密码的. 2:配置ssh信任,首先,在A服务器上生成一个S

记录一则Linux SSH的互信配置过程

需求:四台Linux主机,IP地址为192.168.10.10/11/12/13,配置root用户的等价性1.各节点ssh-keygen生成RSA密钥和公钥 ? 1 ssh-keygen -q -t rsa  -N "" -f  ~/.ssh/id_rsa 2.将所有的公钥文件汇总到一个总的授权key文件中在10执行汇总: ? 1 2 3 4 ssh 192.168.10.10 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

建立LINUX服务器

建立LINUX服务器:一. 下载UltraISO工具并用该工具制作LINUX启动U盘,制作步骤如下:http://www.linuxidc.com/Linux/2012-11/74695.htm [^]打开ISO文件——启动——写入硬盘映像——格式化U盘——便捷启动——写入新的启动器引导扇——syslinus——写入二.把该U盘插入服务器主机——开机选择从U盘启动——安装LINUX系统.三.samba服务器建立.  1 安装Samba文件:sudo apt-get install samba s

Linux SSh scp使用【远程文件/目录的传输】

一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的. 一.Linux ssh scp 的使用方法 1:将本机文件复制到远程服务器上 #scp /home/test/item.txt [email prote