OS:ubuntu10.10
1.概述
传统的远程登录(telnet,rlogin)时不安全的,他们在网络上用明文传输口令和数据,SSH则是安全的,openssh提供两种级别的验证方式。
(1)基于口令的安全验证:知道服务器的帐号密码即可远程登录,口令和数据在传输过程中都会被加密。
(2)基于密钥的安全验证:此时需要在创建一对密钥,把公有密钥放到远程服务器上自己的宿主目录中,而私有密钥则由自己保存。
2.软件安装
sudo apt-cache policy openssh-client openssh-server检查软件是否安装
服务端:sudo apt-get install openssh-server
客户端:sudo apt-get install openssh-client(ubuntu10.10以安装)
该软件包中还携带了一些其他的SSH工具,如ssh-keygen用来生成私钥/公钥对;scp可以用通过ssh远程复制文件;stfp可以实现的ftp传输文件
3.配置文件
zone@zone-ThinkPad-T410:/etc/ssh$ ls -l
total 148
-rw-r--r-- 1 root root 125749 2010-09-15 02:34 moduli //ssh服务器的Diffie-Helllman密钥文件
-rw-r--r-- 1 root root 1669 2010-09-15 02:34 ssh_config //ssh客户端配置文件
-rw-r--r-- 1 root root 2453 2011-03-09 14:09 sshd_config //ssh服务器端配置文件
-rw------- 1 root root 672 2011-03-09 14:09 ssh_host_dsa_key //ssh服务器端dsa算法私钥
-rw-r--r-- 1 root root 613 2011-03-09 14:09 ssh_host_dsa_key.pub //ssh服务器rsa公钥
-rw------- 1 root root 1675 2011-03-09 14:09 ssh_host_rsa_key //ssh服务器rsa算法私钥
-rw-r--r-- 1 root root 405 2011-03-09 14:09 ssh_host_rsa_key.pub /ssh服务器rsa算法公钥
4.常用命令
sudo /etc/init.d/ssh start/stop/restart/status
5.基于口令的认证
ssh 192.168.0.143/主机名(server ip 192.168.0.143)
初次登录服务器时会出现许多信息,这是因为ssh不能识别这台主机,输入yes后将会把这台服务器的信息写入~/.ssh/known_hosts文件,下次登录时就不会出现这样的信息。
6.基于密钥的认证
(1)生成密钥 ssh-keygen -t rsa/dsa( 默认rsa)
生成私钥:~/.ssh/id_rsa,公钥~/.ssh/id_rsa.pub,需要将公钥复制到远程服务器上,这样当登录server后,client会项server提出请求,用私钥认证,server收到请求后,寻找公钥进行身份认证
(2)scp id_rsa.pub 192.168.0.143:.ssh/authorized_keys 并确保权限为644。
(3)ssh 192.168.0.143 如果执行ssh-keygen过程中设置了私钥密码,则登录过程中会要求输入私钥密码。否则直接登录完成。
7.scp简单使用
scp ip1:file1 ip2:file2
其中第一个参数是源文件,第二个时目标文件,当参数是ssh登录到的主机时可以省略ip或者主机名。当是两个参数是两台远程主机的ip时,可以实现两台远程主机之间的文件传输。
eg: scp /home/zone/1.sh 192.168.0.143:/home/erpang 从服务器下载1.sh到143主机的erpang目录下。