OpenSSH是一款遵从the Secure Shell (SSH) 协议的自由软件,主要用来完成计算机终端控制及计算机之间传输文件的任务。有别于传统的telnet或者rcp等工具在操作中传送密码时使用明文的不安全性,它提供了一组服务器和客户端工具,加密了所有操作,保证计算机终端控制和文件传输时的安全性。
a.安装
客户端安装:
- sudo apt-get install openssh-client
服务器端安装:
- sudo apt-get install openssh-server
b.配置文件(/etc/ssh/sshd_config)
- sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
- ;保护该原文件,所用用户去掉写权限。
- sudo chmod a-w /etc/ssh/sshd_config.original
- sudo gedit /etc/ssh/sshd_config
- sudo /etc/init.d/ssh restart
c.SSH Keys
通过使用SSH Keys,可以使主机之间的身份认证不需要密码。SSH Keys使用一个私有Key和一个公共key,通过下面命令生成:
默认情况下,公共Key存储在~/.ssh/id_dsa.pub,私有Key存储在~/.ssh/id_dsa;然后再把公共Key:id_dsa.pub复制到终端主机的~/.ssh/authorized_keys文件中,可以使用ssh-copy-id工具完成,命令如下:
- ssh-copy-id -i ~/.ssh/id_dsa.pub username@remotehost
其中,username和remotehost是指终端主机的用户名和主机名(主机地址);执行当中会询问是否继续连接,输入“yes”将继续,接着要求输入终端主机(remotehost)上用户(username)的密码。
d.登录
- ssh 'username@remotehost'
登录终端后检查~/.ssh/authorized_keys信息是否正确添加,
- cat ~/.ssh/authorized_keys
并且检查该文件是否只对认证用户具有读写权限,如果不对通过下面命令修改,
- chmod 600 ~/.ssh/authorized_keys
f.举例:
主机A,主机名:nc01-dns,用户名:dns,ip地址:192.168.0.1
主机B,主机名:nc02-mirror,用户名:mirror,ip地址:192.168.0.2
实现主机A通过SSH不输入密码登录访问主机B。
主机B执行命令如下:
- ;打开/etc/hosts文件,加入主机B的ip地址和主机名解析
- sudo gedit /etc/hosts
- ;添加新行
- 192.168.0.1 nc01-dns
- ;安装客户端
- sudo apt-get install openssh-client
- ;安装服务端
- sudo apt-get install openssh-server
- ;查看sshd服务的/etc/ssh/sshd_config配置文件,可通过查看man sshd_config的参考,改变需要的配置
- cat /etc/ssh/sshd_config | less
- ;重启sshd服务
- sudo /etc/init.d/ssh restart
主机A执行命令如下:
;打开/etc/hosts文件,加入主机B的ip地址和主机名解析
- sudo gedit /etc/hosts
- ;添加新行
- 192.168.0.2 nc02-mirror
- ;安装客户端
- sudo apt-get install openssh-client
- ;生成DSA类型的密钥对
- ssh-keygen -t dsa
- ;查看公共Key和私有Key
- cat ~/.ssh/id_dsa.pub
- cat ~/.ssh/id_dsa
- ;将公共Key复制到主机B
- ssh-copy-id -i ~/.ssh/id_dsa.pub mirror@nc02-mirror
- ;使用SSH登录到主机B
- ssh 'mirror@nc02-mirror'
- ;查看~/.ssh/authorized_keys的权限,并将authorized_keys的权限改为600
- ls -al ~/.ssh/authorized_keys
- chmod 600 ~/.ssh/authorized_keys
阅读(1517) | 评论(0) | 转发(0) |