ssh-agent 与 Centos 基于key的免密码登录

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 [[email protected]]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]] [[email protected]]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 [email protected]
如果在COPY的时候不小心把公钥写成了私钥,放心,实际执行时只会复制公钥。

会在用户的家目录的.ssh/目录生成authorized_keys文件

3. 测试
#ssh [email protected]

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

移除代理中的所有私钥

ssh-add -D

#ssh-add -D
All identities removed.

原文地址:http://blog.51cto.com/191226139/2061323

时间: 2024-10-29 09:46:23

ssh-agent 与 Centos 基于key的免密码登录的相关文章

git乌龟http/https以及ssh clone的秘钥配置永久免密码登录设置

1.安装 安装Git 安装TortoiseGit 乌龟客户端 首先下载安装一个git客户端这个就不多说了基本就是next一直到底 安装后首次新建一个项目project在git服务器上 2.配置 1.注册用户,让git知道你是谁,在于提交代码的时候,知道是哪个家伙提交的!git config --global user.name  "chen1932490299"    用户名是git服务器上配置的谁填谁git config --global user.email "19324

ssh-keygen生成公私钥免密码登录远程服务器

经常需要登录远程服务器很麻烦,因此在此记录下免密码登录远程服务器的那些事. 1. 比较常用而保险的ssh-keygen公私钥配对登录. 2. 终端输入命令:ssh-keygen -t rsa 这里需要你输入一个钥匙的名称,不输入默认为:id_rsa (私钥) 和 id_rsa.pub(公钥) 通常在企业里面一台服务器有很多人使用,因此默认的名称很可能已经有人使用了,所以这里可以输入一个你自己的名字为好. 3. 输入密钥名称后,回车,会让输入密码. 4. 因为我们要免密码登录,所以别填,直接回车2

【CentOS】SSH实现免密码登录与文件分发

实验环境: 10.0.0.9:分发服务器(用于保存SSH生成的密钥和后期的文件的分发工作)10.0.0.10.10.0.0.11:节点服务器(用于保存SSH生成的公钥文件和接收分发服务器的文件) #分发服务器与节点服务器的系统版本与内核如下 [[email protected]/]# cat /etc/redhat-release CentOS release 5.8 (Final) [[email protected]/]# uname -a Linux C58 2.6.18-308.el5 

Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥(公钥与私钥):2.放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中:3.配置ssh客户端使用密钥登录. 一.生成密钥公钥(Public key)与私钥(Private Key) 打开Xshell,在菜单栏点击"tools",在弹出的菜单中选择&quo

CentOS配置SSH免密码登录后,仍提示输入密码------[接-(准备完全分布式主机的 ssh)]

CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默认在 ~/.ssh目录生成两个文件:    id_rsa      :私钥    id_rsa.pub  :公钥 2.导入公钥到认证文件    2.1 导入本机 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 2.2 导入要免密码登录的服务器 首先将

CentOS 6.4 SSH 免密码登录

在配置apache集群分布时,要使用SSH免密码登录.假设现在有两台机器[email protected](192.168.1.100)作为svn机,[email protected](192.168.1.101)作为app机.现在想[email protected]通过ssh免密码登录到[email protected]. 1.在svn机下生成公钥/私钥对. [[email protected] ~]$ ssh-keygen -t rsa -P '' 敲击回车键即可,它在/home/apach

centos配置ssh免密码登录后,仍提示输入密码

配置SSH无密码登录需要3步: 1.生成公钥和私钥 2.导入公钥到认证文件,更改权限 3.测试 1.生成公钥和私钥 Shell代码 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默认在 ~/.ssh目录生成两个文件:    id_rsa      :私钥    id_rsa.pub  :公钥 2.导入公钥到认证文件 2.1 导入本机 Shell代码 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 2.2 导入要

CentOS 配置集群机器之间SSH免密码登录

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. 在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来. 这里主要介绍SSH的配置和登录失败的情况 SSH配置 的集群中的每台主机

解决:centos配置ssh免密码登录后仍要输入密码

转自https://www.jb51.net/article/121180.htm 第一步:在本机中创建秘钥 1.执行命令:ssh-keygen -t rsa 2.之后一路回车就行啦:会在-(home)目录下中产生.ssh(隐藏)文件夹: 3.里面有两个文件id_rsa(私钥).id_rsa.pub(公钥)文件 注意事项: ①在liunx环境下,要想复制公钥或是私钥,不要使用vim等编辑器打开文件来复制粘贴: 因为它会产生不必要的回车. ②应该使用cat把内容打印到终端上再来复制粘贴: 第二步: