跳转至

什么是SSH

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows 10 1803版本已提供OpenSSH工具。

在本专题中,将介绍有关OpenSSH使用的一些简单使用方法

安装OpenSSH

OpenSSH软件分为服务器、客户端两种,通常情况下,Linux发行版都会默认安装OpenSSH的客户端。对于被管理的Linux服务器,还需要安装OpenSSH的服务端软件

在Ubuntu/Debian上安装

使用以下命令安装软件:

sudo apt-get update && sudo apt-get install openssh-server
需要注意的是,目前主流的Debian/Ubuntu系统都默认禁止⛔️root用户使用ssh登录,如果需要使用root用户登录服务器的话,请将/etc/ssh/sshd_config文件中的PermitRootLogin参数改成如下:
PermitRootLogin yes

在CentOS/RHEL/Fedora上安装

使用以下命令安装软件

sudo yum –y install openssh-server

使用SSH连接远程主机

通常情况下,大量的Linux服务器都会使用SSH进行远程管理,连接远程服务器的命令格式如下:

ssh 用户名@服务器地址

例如:使用xianyu用户登录example.xianyu.one这台主机 可以写成:

无密码登录

每次登录时需要输入密码是很令人苦恼的,尤其是需要频繁操作服务器时,会浪费很多时间。

生成密钥

使用以下命令生成密钥,在没有特殊需求的情况下直接回车到底即可

ssh-keygen

将密钥传送至远端服务器

使用以下命令将本地的密钥推送至远端主机

ssh-copy-id 用户名@服务器地址
在推送密钥后就可以无密码登录服务器了

SCP传输文件

将本地文件传输至远端服务器

命令格式如下

scp 本地文件路径 用户@服务器地址:服务器的绝对路径
例如:
scp /root/test.txt [email protected]:/home/xianyu/
上述命令含义为:将本地的/root目录下的test.txt这个文使用用户xianyu的身份上传到服务器example.xianyu.one/home/xianyu/目录下

将远端文件传输至本地

scp 用户@服务器地址:服务器的绝对路径 本地文件路径

传输文件夹

如果要传输文件夹,请加上-r参数

scp -r 本地文件夹路径 用户@服务器地址:服务器的绝对路径

scp -r 用户@服务器地址:服务器的绝对路径 本地文件夹路径