ssh-agent 与 Centos 基于key的免密码登录
2018-01-15 23:12
453 查看
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定; SSH 为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。 所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后, 就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。 使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
ssh连接服务器慢的解决方法
编辑以下文件 ssh服务端 配置文件/etc/ssh/sshd_config 把以下2项修改为,并重启ssh服务 UseDNS no GSSAPIAuthentication no
ssh客户端
配置文件:/etc/ssh/ssh_config
语法:
ssh [user@]host [命令] 远程执行命令后返回信息并退出 -p port:远程服务器监听的端口 -b:指定连接的源IP -v:调试模式 -C:压缩方式 -X: 支持x11(图形)转发 -Y:支持信任x11转发 ForwardX11Trusted yes -t: 强制伪tty分配 ssh -t 跳板机IP ssh 最终访问IP #ssh -t 192.168.4.101 ssh 192.168.4.113
ssh服务登录验证方式
基于用户和口令登录验证基于密钥的登录方式
1 首先在客户端生成一对密钥(ssh-keygen) 2 并将客户端的公钥ssh-copy-id 拷贝到服务端 3 当客户端再次发送一个连接请求,包括ip、用户名 4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf 5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端 6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端 7 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
基于密钥的认证实现步骤
命令语法 生成密钥对 ssh-keygen -t rsa [-P ''] [-f "~/.ssh/id_rsa"] ssh-keygen -t 加密算法 -P '加密口令' -f "指定生成密钥位置" 这个是大写的P 公钥文件传输至远程服务器 ssh-copy-id [-i [identity_file]] [user@]host ssh-copy-id -i 指定密钥 远程用户@远程主机 根据私钥生成公钥 #ssh-keygen -f id_rsa -y -y选项表示根据私钥生成对应的公钥,生成的公钥会打印在屏幕中,可以使用重定向生成公钥文件 修改现有私钥的密码 小写的p是修改密码 #ssh-keygen -f id_rsa -p
步骤: 1.在客户端生成密钥对 #ssh-keygen #cat id_rsa id_rsa id_rsa.pub 2.把公钥文件传输至远程服务器对应用户的家目录 #ssh-copy-id -i id_rsa.pub root@192.168.4.100 如果在COPY的时候不小心把公钥写成了私钥,放心,实际执行时只会复制公钥。 会在用户的家目录的.ssh/目录生成authorized_keys文件 3. 测试 #ssh root@192.168.4.100 4.实现了免密登录了
注意:如果不想再基于key认证了,可以把~/.ssh/authorized_keys文件删除
基于key的免密码登录安全防范
私钥很重要,等于身份的确认,一但私钥丢失,风险是极高的。可是,好不容易刚整完了免密码登录,如果对私钥进行加密码,每次使用都需要输入密码,岂不是给便利性带来了麻烦?
ssh-agent
它可以帮助我们管理私钥:1.在使用不同的密钥连接到不同的主机时,ssh代理可以帮助我们选择对应的密钥进行认证,不用手动指定密钥即可进行连接。
2.当私钥设置了密码,ssh代理可以帮助我们免去重复的输入密码的操作。
基于Linux的步骤如下:
1.先完成以上的基于key验证的步骤 2.启动ssh-agent # eval `ssh-agent` 3.将私钥添加到ssh代理 # ssh-add 私钥名 4.测试
基于Windows的 xshell 步骤如下:
以下为ssh-agent命令的一些常用选项。
启动与关闭ssh-agent方法一: ssh-agent bash 在子shell中打开ssh-agent,退出子shell自动结束代理 方法二: eval `ssh-agent` 在当前shell中打开ssh-agent,退出当前shell时最好使用ssh-agent -k关闭对应代理
将私钥添加到ssh代理
ssh-add 私钥名 #ssh-add id_rsa Enter passphrase for id_rsa: 密钥口令 Identity added: id_rsa (id_rsa)
查看代理中的私钥
ssh-add -l
查看代理中的私钥对应的公钥
ssh-add -L
移除指定的私钥
ssh-add -d 私钥名 #ssh-add -d id_rsa Identity removed: id_rsa (root@7-ansible-0)
移除代理中的所有私钥
ssh-add -D #ssh-add -D All identities removed.
相关文章推荐
- ssh无密码登录报错:Agent admitted failure to sign using the key
- 针对ssh免密码登录出现Agent admitted failure to sign using the key
- 大数据环境基础之Centos安装Haoop集群(4)ssh免密码登录
- Hadoop集群安装(六)--------CentOS配置SSH无密码登录
- CentOS下SSH无密码登录的配置文件
- centos6.5 设置ssh无密码登录
- CentOS下SSH无密码登录的配置
- CentOS系统实现SSH无密码登录的方法
- CentOS配置SSH免密码登录(密匙登录)
- centos 6 设置无密码登录ssh 不成功问题
- centos安装ssh免密码登录
- CentOS 6.9 SSH配置用户免密码登录
- CentOS 配置集群机器之间SSH免密码登录
- CentOS SSH安全和配置无密码登录
- 配置ssh agent远程登录不用输入密码
- 通过SSH证书实现Putty免密码登录CentOS
- linux 禁止帐号密码验证 使用key验证方式登录SSH
- CentOS6.5设置完SSH免密码登录之后仍然要求输入密码的问题
- centOS配置SSH无密码登录
- ssh配置key免密码登录