• 基本概念

·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.命令设置
  在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客户端登录  
    1. 安装openssh-clients (默认已安装)  
    2. 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服务器后会出现如下的界面 
 
 

12-24 09:51