shell编程 之 ssh远程连接
1,ssh理解
有两个服务器,一个是本地,一个是云端的,都是linux系统的,如果我们想要通过本地访问云端的系统,那我们可以用ssh命令,可以实现本地登入远程连接,上传或者下载文件到远程服务器。
ssh连接的准备工作:
1,远程服务器有一个公网ip,有一个端口,有一个用户而且知道密码(root用户也行)
2,本机开启sshd服务,默认是开着的。
2,命令
登录远程服务器格式:ssh 用户名@IP地址 -p 端口号 #连接成功的话,会提示输入密码。就是远程服务器上用户的密码
3,scp文件上传和下载
把本地文件上传到远程服务器:
scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径
远程服务器上的文件下载到本地:
scp -P 端口号 用户名@远程服务器地址:远程路径 本地文件路径
注意,如果上传或者下载的是文件夹和其下的文件,那么就指定-r参数就可以了
4,拓展ssh免密链接远程服务器
核心思想:
1.本地主机生成公钥私钥,私钥自己存着,公钥传到远程主机.ssh文件夹下authorized_keys文件(默认是这个,用追加的方式,authorized_keys的权限要是600)
2.本地连接远程主机,公私钥对上就可以免密登入了.
步骤
1.本地主机上生成公钥和私钥文件id_rsa和id_rsa.pub (敲三下回车即可)。
- [root@bogon ~]# ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/root/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /root/.ssh/id_rsa.
- Your public key has been saved in /root/.ssh/id_rsa.pub.
- The key fingerprint is:
- 67:da:0d:79:e0:d6:2b:cd:7d:22:af:51:7e:9c:75:fe root@bogon
- The key's randomart image is:
- +--[ RSA 2048]----+
- | |
- | |
- | . |
- | . + |
- | S B o . o|
- | * * = o+|
- | . o B +.=|
- | . + +.|
- | ... E|
- +-----------------+
2.远程主机上创建~/.ssh目录,权限为700,把~/.ssh/id_rsa.pub从本地追加到远程主机上的~/.ssh/authorized_keys
整个过程有点像cookie。