- 基本概念
·linux 自带的ssh为OpenSSH
·ssh协议提供两种用户认证方式 :
- 基于口令的安全认证:使用用户名、密码的方式对登录用户进行认证
- 基于密钥的安全认证:使用公钥和私钥对的方式对登录用户进行认证
·OpenSSH的rpm 包由四部分组成(默认已安装)
openssh-4.3p2-26.el5.i386.rpm (一定要先安装这个rpm 包)
openssh-server-4.3p2-26.el5.i386.rpm
openssh-clients-4.3p2-26.el5.i386.rpm
openssh-askpass-4.3p2-26.el5.i386.rpm (在图形界面下使用ssh服务时才需要)
·openssh 的主配置文件为:
/etc/ssh/sshd_config #ssh服务器的配置文件
/etc/ssh/ssh_config #ssh客户端的配置文件
·openssh支持使用 scp (加密的拷贝)和sftp (加密的ftp )等客户端程序进行远程主机的文件复制
OpenSSH服务器端配置实例1:配置无密码访问
- 方法1.命令设置
在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去
ssh-keygen
ssh-copy-id 192.168.1.82
ssh-copy-id 192.168.1.83
- 方法2.手动设置
·在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去
ssh-keygen
·上面命令结束后,进入到下面的文件夹
cd /root/.ssh
·可以看到里面两个文件。一个公钥一个私钥,可以理解为古代调动兵权的虎符,公钥和私钥是一对的,只有公钥和私钥配对上了,才能进行访问。另外公钥和私钥的生成是根据一定的算法生成的,每次都不一样,会加入机器的因子,也就是说一台机器上生成的公钥私钥,放在另外一组机器上是不行的。
·id_rsa为私钥,放在访问端的,相当于钥匙
·id_rsa.pub为公钥,放在所有被访问端的,相当于锁。
-rw-------. 1 root root 1679 Sep 7 16:48 id_rsa
-rw-r--r--. 1 root root 393 Sep 7 16:48 id_rsa.pub
·将公钥重命名拷贝一个authorized_keys
cp id_rsa.pub authorized_keys
·用scp将authorized_keys拷贝到82、83的/root/.ssh目录下面就可以无密码访问了
scp authorized_keys 192.168.1.82:/root/.ssh/
scp authorized_keys 192.168.1.83:/root/.ssh/
测试(不用输入密码就可以登录表明成功)
ssh 192.168.1.82
ssh 192.168.1.83
OpenSSH服务器端配置实例2:基于用户名密码的登录方式
- vi /etc/ssh/sshd_config (以下列出的是常用配置)
#Port 22 #定义ssh监听的端口号,默认为22
#Protocol 2,1 #设置使用ssh协议的顺序,先使用ssh2,如果不成功再使用ssh
Protocol 2 #设置只使用ssh2协议
#ListenAddress 0.0.0.0 #设置ssh服务器绑定的ip地址,默认为所有可用的ip地址
#PermitRootLogin yes #设置是否允许root登录,默认允许
#PermitEmptyPasswords no #设置是否允许空密码的客户登录,默认为禁止
PasswordAuthentication yes #设置是否使用口令认证方式,如果要使用公钥认证方式,可将其设置为no
- 重启ssh服务
/etc/init.d/sshd restart
- 如果启用了iptables,则需要添加如下语句来开放ssh
iptables –I INPUT –p tcp –dport 22 –j ACCEPT
iptables –I OUTPUT –p tcp –sport 22 –j ACCEPT
- windows客户端登录
使用xshell、putty、securecrt等客户端软件都可以登录
- linux客户端登录
- 安装openssh-clients (默认已安装)
- ssh命令的基本使用
ssh username@sshserver
ssh –l username sshserver
OpenSSH服务器端配置实例3:基于公钥认证的ssh登录
- 获取puttygen程序
可以使用puttygen程序来生成密钥对,下载地址为
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
- 产生密钥
- 保存密钥
- 传输公钥文件到ssh服务器
公钥文件是可以公开给所有用户的,无需考虑安全问题,可以使用ftp、u盘都可以
- 转换公钥文件格式
由于puttygen产生的公钥文件格式与openssh的格式不兼容,因此还要在linux中使用openssh自带的ssh-keygen对其进行转换,openssh存放公钥的目录默认为/root/.ssh,如果没有这个目录,可以手工创建 。
[root@server ~]# mkdir .ssh
[root@server ~]# ssh-keygen -i -f wtcentoskey.pub > /root/.ssh/authorized_keys
如果有多个公钥需要添加,可使用下面的命令将公钥文件追加到authorized_keys中
[root@server ~]# ssh-keygen -i -f abcxyz.pub >> /root/.ssh/authorized_keys
- 在ssh服务器上启用公钥认证
[root@server ~]# vi /etc/ssh/sshd_config
- 重启sshd服务
[root@server ~]# /etc/init.d/sshd restart
- 客户端用putty来登录ssh服务器
Putty成功的连接到ssh服务器后会出现如下的界面