SSH 为 Secure Shell 的缩写,由 IETF 的网络小组 (Network Working Group) 所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
SSH 的服务的安装是其中必不可少的一步。SSH 方便一个开发人员登录服务器,方便代码的共享、管理、编写、编译、运行等工作,SSH 是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行 SSH。
SSH 概述
SSH 分为两部分:客户端 (openssh-client) 部分和服务端 (openssh-server) 部分。
服务端是一个守护进程 (daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是 sshd 进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含 ssh 程序以及像 scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输) 等其他的应用程序,更多 SSH 客户端管理工具,请查看《管理 Linux 系统 SSH 客户端软件工具》。
如果你只是想登陆管理其他设备服务器的 SSH 只需要安装客户端 (openssh-client) 部分 (ubuntu 有默认安装,如果没有可以执行:sudo apt-get install openssh-client -y
命令进行安装),如果需要其他设备服务器远程登录管理您当前的 Ubuntu 服务器,则需要本机安装 SSH 服务端 (openssh-server) 部分。
查看是否安装 SSH 服务端
执行 dpkg -l | grep ssh
命令,查看当前 Ubuntu 系统,是否安装了 ssh-server
服务。常规 Ubuntu 系统默认是只安装了 ssh-client
服务。
ubuntu@ubuntu:~$ dpkg -l | grep ssh
ii libssh-4:amd64 0.9.3-2ubuntu2.2 amd64 tiny C SSH library (OpenSSL flavor)
ii openssh-client 1:8.2p1-4ubuntu0.5 amd64 secure shell (SSH) client, for secure access to remote machines
ubuntu@ubuntu:~$
如下图:
安装 ssh-server 服务
执行命令:sudo apt-get install openssh-server -y
,安装 ssh-server
服务
ubuntu@ubuntu:~$ sudo apt-get install openssh-server -y
如下图:
确认 SSH 服务端 安装成功
再次执行 dpkg -l | grep ssh
命令,查看安装的服务,确认 SSH 服务端是否安装成功:
ubuntu@ubuntu:~$ dpkg -l | grep ssh
ii libssh-4:amd64 0.9.3-2ubuntu2.2 amd64 tiny C SSH library (OpenSSL flavor)
ii openssh-client 1:8.2p1-4ubuntu0.5 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:8.2p1-4ubuntu0.5 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:8.2p1-4ubuntu0.5 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
ii ssh-import-id 5.10-0ubuntu1 all securely retrieve an SSH public key and install it locally
ubuntu@ubuntu:~$
如下图:
出现 openssh-server
即表示安装成功。
然后输入 ps -e | grep ssh
命令,检测确认 ssh-server
是否启动
ubuntu@ubuntu:~$ ps -e | grep ssh
1668 ? 00:00:00 ssh-agent
4247 ? 00:00:00 sshd
ubuntu@ubuntu:~$
如果看到 sshd
,那说明 ssh-server
已经启动了。
如果没有则可以执行 systemctl start sshd
命令进行启动
SSH 配置相关
ssh-server
配置文件位于/etc/ssh/sshd_config
,在这里可以定义 SSH 的服务端口,SSH 的默认端口为 22
,为了安全,你可以自己定义成其他端口号,如:2022
或其他端口号。
也可以直接通过通过修改/etc/ssh/sshd_config
配置文件,去除 #PermitRootLogin prohibit-password
段前 #
注释,并将参数 PermitRootLogin prohibit-password
更改为 PermitRootLogin yes
; 即可实现使用 root 用户远程登陆管理,具体方法清查:《Linux 系统设置允许 root 用户远程 SSH 登陆方法》。
修改完相关配置文件后,执行 systemctl restart sshd
命令,重启 SSH 服务后,即可生效。
登陆 SSH(Linux)
ssh username@192.168.1.103
其中,username 为 192.168.1.103 设备上的用户,需要输入密码。
断开连接:exit
SSH 常用命令
#首先安装 SSH 服务
yun install openssh-server -y #centos
sudo apt-get install openssh-server -y #Debian、Ubuntu
systemctl start sshd #启动 SSH 服务
/etc/init.d/ssh start #启动 SSH 服务
systemctl restart sshd #重启 sshd 服务
sudo /etc/init.d/ssh restart #重启 sshd 服务
systemctl stop sshd #停止 sshd 服务
systemctl status sshd #查看 sshd 服务状态
systemctl reload sshd #重新加载 sshd 服务的配置文件
update-rc.d ssh enable #配置 sshd 服务开机自动启动
systemctl enable sshd #sshd 服务开机启动
systemctl disable sshd #sshd 服务禁止开机启动
netstat -antp | grep sshd #查看 SSH 服务端口
systemctl mask sshd #锁定 sshd 服务
systemctl unmask sshd #解锁 sshd 服务
另外,如果安装了 ssh 服务,Windows、Mac 相关系统下可以使用 SSH 工具或者 PuTTY 登录管理这台 Ubuntu,更多 SSH 客户端管理工具,请查看《管理 Linux 系统 SSH 客户端软件工具》。
所以可以使用公共密钥的登陆方式来提高速度和安全性。
参考资料
- https://blog.csdn.net/jackghq/article/details/54974141
- https://blog.csdn.net/qq_45164331/article/details/122533327
- https://www.jb51.net/article/194050.htm
- https://blog.csdn.net/qq_33468857/article/details/120129
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。