在Linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上。
- SSH客户端是一种使用Secure Shell协议连接到远程计算机的软件程序
- SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议
1.利用SSH协议可以有效防止远程管理过程中的信息泄露。
2.通过SSH协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
-SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度。
1)域名和端口号
域名
- 是一串用点分隔的名字组成
- 是IP地址的别名,方便用户记忆
端口号
- IP地址:通过IP地址找到网络上的计算机
- 端口号:通过端口号可以找到计算机上运行的应用程序
SSH服务器的默认端口号,如果是默认端口号,在连接的时候,可以省略 - 常见的服务器端口号:
SSH服务器 22
Web服务器 80
HTTPS 443
FTP服务器 21
2)SSH客户端的简单的使用
ssh [-p port] user@remote
#user是远程计算器上的用户名,如果不指定的话默认为当前用户
#remote是远程计算器的地址,可以是IP/域名,或者可以是别名
#port是SSH Server监听的端口,如果不指定,就为默认值22
#使用exit退出当前用户的登录
- ssh这个终端命令只能在Linux或者UNIX系统下使用
- 如果在Windouws系统中,可以安装PuTTY或者XShell客户端软件即可
3)scp(掌握)
- scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
- 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的
- -r选项 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
#把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py
#注意:“:”后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
#把远程家目录下的Desktop/01.py文件 复制到 本地当前目录下的01.py
scp -P port user@remote:Desktop/01.py 01.py
#加上-r 选项可以传送文件夹
#把本地当前目录下的demo文件夹复制到远程家目录下的Desktop
scp -r demo user@remote:Desktop
#把远程家目录下的Desktop复制到当前目录下的demo文件夹
scp -r user@remote:Desktop demo
4)设置免密登录
步骤:
- 生成公匙
在本地执行ssh-keygen即可生成SSH钥匙,一路回车即可,生成的公匙在C:\Users\userName.ssh文件夹下(windous系统) - 上传公匙到服务器
执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公匙 - 注意:
如果在windous系统下无法执行ssh-copy-id命令,则可以使用scp命令将公匙拷贝到服务器。例如,在本地(windous系统)下的.ssh文件夹下打开终端命令。把.ssh文件夹下的id_rsa.pub重命名为authorized_keys。执行以下命令:
scp authorized_keys user@remote:.ssh
示意图:
5)配置别名
在本地/.ssh/config里面追加以下内容
Host myserve
HostName 服务器ip地址
User 服务器名称
Port 22
配置之后,即可用ssh myserve实现远程登录了,scp同样适用