2-3 远程管理命令-SSH工作方式简介
03.远程登录和复制文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh 用户名@ip | secure shell | 关机/重启 |
02 | scp 用户名@ip:用户名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
3.1 ssh 基础(重点)
在linux中ssh是非常常用的工具,通过ssh客户端我们可以连接到运行了ssh服务器的远程机器上
- ssh客户端是一种使用
secure shell(ssh)
协议连接到计算机的软件程序 - ssh是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
- 利用
ssh 协议
可以有效防止远程管理过程中的信息泄露 - 通过
ssh 协议
可以对所有传输的数据进行加密,也能够防止dns欺骗和ip欺骗 -
ssh
的另一项有点事传输的数据可以是经过压缩的,所以可以加快传输的速度
- 利用
1)域名 和 端口号
域名
- 由一串用点分隔的名字组成,eg:
www.baidu.com
- 是ip地址的别名,方便用户记忆
端口号
- ip地址:通过ip地址找到网络上的计算机
-
端口号:通过端口号可以找到计算机上运行的应用程序
-
ssh服务器的默认端口号是
22
,如果是默认端口号,在连接的时候可以省略
-
ssh服务器的默认端口号是
- 常见服务端口号列表:
序号|服务|端口号
-|-|-
01|ssh服务器|22
02|web服务器|80
03|https|443
04|ftp服务器|21
软件中:
访问地址组成的结构:ip地址
+:
+端口号
linux中:
eg:$ ssh -p端口号 用户名@ip地址
注意:
在这之前要确定linux上有安装ssh操作如下:
1.ps - e| grep ssh
如果没有看到进程类似:
就说明没有启动或安装
2.安装ssh:sudo apt-grep install openssh-server
,之后输入yes,进行安装。再次通过ps - e| grep ssh
确定是否启动
3.启动ssh:sudo /etc/init.d/ssh start
4.ssh连接客户端:$ ssh 用户名@ip地址:端口号
,或者不用输入端口号
2)ssh客户端的简单使用
ssh [-p port] user@remote
-
user
是在远程机器上的用户名,如果不指定的话,就默认为当前用户 -
remote
是远程机器的地址,可以是ip/域名,或者是后面会提到的别名 -
port
是ssh server箭头的端口,如果不指定,就默认为默认22
提示:
- 使用
exit
退出当前用户的登录
注意:
-
ssh
这个终端命令只能在linux
或unix
系统下使用 - 如果在
windows
系统中,可以安装putty
或者xshell
客户端软件即可
提示:
- 在工作中,ssh服务器的端口很可能不是22,如果遇到这种情况就需要使用
-p
选项,指定正确端口号,否则无法正常连接到服务器
3)windows下ssh客户端安装
-
putty
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html -
xshell
http://xshellcn.com
3.2 scp(掌握)
- scp就是
secure copy
,是一个在linux下用来进行远程拷贝文件的命令 - 它的地址格式与ssh基本相同,需要注意的是,在指定端口是用的是大写
-p
而不是小写的
user是用户名,remote是远程ip 1# 把本地当前目录下的01.py 文件复制到远程家目录下的 desktop/01.py 2# 注意: `:`后的路径如果不是绝对路径,则以用户的家目录作为参照路径 scp -p port 01.py user@remote:desktop/01.py 3# 把远程家目录小的desktop /01.py 文件复制到本地当前目录下的01.py scp -p port 01.py user@remote:desktop/01.py 4# 加上 -r选项可以传送文件夹 5# 把当前目录下的demo 文件夹复制到远程家目录下的desktop scp -r demo user@remote:desktop 6# 把远程家目录下的desktop 复制到当前目录下的demo文件夹 scp -r user@remote:desktop demo
选项 | 含义 |
---|---|
-r | 若给出源文件是目录文件(文件夹),则scp将递归复制该目录下的 所有子目录和文件,目标文件必须为一个目录名 |
-p | 若远程ssh服务器的端口不是22,需要使用大写字母-p选项指定端口 |
注意:
-
scp
在这个终端命令只能在linux
huounix
系统下使用 - 如果在
windows
中,可以安装putty
,使用pscp
命令行工具或者安装filezilla
使用ftp
进行文件传输
filezilla
- 官网:https://filezilla-project.org/download.php?type=client
-
filezilla
在传输文件时,使用的是ftp服务
而不是ssh服务
报错
解决方法
1.防火墙的问题,由于我的防火墙日常关闭,所有跟这个没关系
2.建立新站点,采用 stfp + 端口 22 的方式
filezilla -> 文件 -> 站点管理->新站点->常规里的协议:stfp-ssh ->主机:远程的ip 用户名和密码->连接
3.3 ssh高级(高级)
- 免密登录
- 配置别名
提示:有关ssh配置信息都保存在家目录下的.ssh
目录下
1)免密登录
步骤:
1.配置公钥
- 执行
ssh-keygen
即可生成ssh钥匙,一路enter即可 ,之后会生成id_rsa id_rsa.pub 两个文件
2.上传公钥
- 执行
ssh-copy-id -p port user@remote
,可以让远程服务器记住我们的公钥
下图是操作结果
示意图:
本地使用私钥对数据进行加密/解密
服务器使用公钥对数据进行加密/解密
非对称加密算法
- 使用公钥加密的数据,需要使用私钥解密
- 使用私钥加密的数据,需要使用公钥解密
2)配置别名
每次输入ssh-copy-id -p port user@remote
,时间久也很麻烦,特别是当user
,remote
和port
都得输入,而且还不好记忆
但配置别名就会很方便了,例如:ssh mac
具体操作是在本地计算机的~/.ssh/chonfig
里追加以下内容:host mac hostname ip地址 user 用户名 port 22
保存之后,就可以使用ssh mac
实现远程别名登录,scp
同样可以使用
上一篇: java第2天:类,对象,封装和构造方法
下一篇: 博客笔记整理【持续更新...】