shell编程 之 ssh远程连接

时间:2024-04-15 10:23:10

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 (敲三下回车即可)。

  1. [root@bogon ~]# ssh-keygen -t rsa 
  2. Generating public/private rsa key pair.  
  3. Enter file in which to save the key (/root/.ssh/id_rsa):  
  4. Enter passphrase (empty for no passphrase):  
  5. Enter same passphrase again:  
  6. Your identification has been saved in /root/.ssh/id_rsa.  
  7. Your public key has been saved in /root/.ssh/id_rsa.pub.  
  8. The key fingerprint is:  
  9. 67:da:0d:79:e0:d6:2b:cd:7d:22:af:51:7e:9c:75:fe root@bogon  
  10. The key\'s randomart image is:  
  11. +--[ RSA 2048]----+  
  12. | |  
  13. | |  
  14. | . |  
  15. | . + |  
  16. | S B o . o|  
  17. | * * = o+|  
  18. | . o B +.=|  
  19. | . + +.|  
  20. | ... E|  
  21. +-----------------+ 

2.远程主机上创建~/.ssh目录,权限为700,把~/.ssh/id_rsa.pub从本地追加到远程主机上的~/.ssh/authorized_keys

整个过程有点像cookie。