1. 什么是SSH
- SSH是一种网络协议,用于计算机之间的加密登录。
- 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。
- 1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
2. SSH为什么能保证安全
SSH通讯的过程:
- 远程主机收到用户的登录请求,把自己的公钥发给用户。
- 用户使用这个公钥,将登录密码加密后,发送回来。
- 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
3. 安装SSH
以Ubuntu为例:
sudo apt-get install sshd
sudo apt-get install openssh-server
4. 开启SSH服务
service sshd start
5. 卸载SSH服务
sudo apt-get –purge remove sshd
6. 使用SSH登录远程主机
ssh username#remote_host_ip
举例:ssh root@192.168.1.11
-
登录成功以后,会保存一组数据在文件
$HOME/.ssh/known_hosts
之中。下次再连接这台远程主机,系统就会认出它的公钥已经存储在本地,从而跳过警告部分,直接登录或提示输入密码。 -
有时候因为某些原因,登录IP地址相同的不同主机,SSH会报错,登录失败。这时候,删除
known_hosts
中的内容就行了。 -
将公钥发送到远程主机,私钥保存在本地,可以避免每次都输入密码
7. 使用SSH传输文件
7.1 scp指令
- 将远程文件拷贝到本地
//文件
scp username@ip_address:/home/username/filename .
//目录
scp -r username@ip_address:/home/username/dirname .
- 将本地文件拷贝到远程
//文件
scp filename username@ip_address:/home/username
//目录
scp -r dirname username@ip_address:/home/username
7.2 rsync指令
- scp已经过时了,现在使用rsync。
- 使用方法与scp一样