基本概念
linux自带的ssh为OpenSSH
ssh协议提供两种用户认证方式
1、 基于口令的安全认证:使用用户名、密码的方式对登录用户进行认证
2、 基于密钥的安全认证:使用公钥和私钥对的方式对登录用户进行认证
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、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
2、重启ssh服务
/etc/init.d/sshd restart
3、如果启用了iptables,则需要添加如下语句来开放ssh
iptables –I INPUT –p tcp –dport 22 –j ACCEPT
iptables –I OUTPUT –p tcp –sport 22 –j ACCEPT
3、windows客户端登录
使用xshell、putty、securecrt等客户端软件都可以登录
4、linux客户端登录
1、安装openssh-clients (默认已安装)
2、ssh命令的基本使用
ssh username@sshserver
ssh –l username sshserver
OpenSSH服务器端配置实例2:基于公钥认证的ssh登录
1、 获取puttygen程序
可以使用puttygen程序来生成密钥对,下载地址为
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
2、 产生密钥
3、 保存密钥
4、 传输公钥文件到ssh服务器
公钥文件是可以公开给所有用户的,无需考虑安全问题,可以使用ftp、u盘都可以
5、 转换公钥文件格式
由于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
6、 在ssh服务器上启用公钥认证
[root@server ~]# vi /etc/ssh/sshd_config
7、 重启sshd服务
[root@server ~]# /etc/init.d/sshd restart
8、 客户端用putty来登录ssh服务器
Putty成功的连接到ssh服务器后会出现如下的界面
附:如果使用xshell则更加简单,因为xshell生成的密钥对和openssh是完全兼容的,无需转换,只需要将公钥文件追加到/root/.ssh/authorized_keys中即可,如下: cat /root/wtxshell.pub >> /root/.ssh/authorized_keys