SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为创建在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登陆会话和其余网络服务提供安全性的协议。利用 SSH 协议能够有效防止远程管理过程当中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其余操做平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎全部UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其余平台,均可运行SSH。html
在以 Linux 内核发行版操做系统上,要实现远程链接,须要安装 openssh-server 软件包,并做为服务在后台一直运行,而 openssh-server 软件包依赖于 openssh-clients.git
在 centos 系统安装 openssh-server 步骤shell
yum install -y openssh yum install openssh-clients yum install -y openssh-server # centos 7 启动 openssh-server systemctl start sshd.services # centos 6 启动 openssh-server # /etc/init.d/sshd start
在 ubuntu 中安装 openssh-server 步骤 (ubuntu 默认安装openssh-clients)ubuntu
sudo apt update sudo apt install openssh-server # 启动 openssh-server sudo /etc/init.d/ssh start # 或 # sudo systemctl start ssh.service # 或 # sudo service ssh start
可经过如下3个命令中任何一个来检查是否已经安装 openssh-server:vim
dpkg -s openssh-server apt search openssh-server sudo /etc/init.d/ssh start
若是出现:centos
说明:openssh-server 未安装,须要安装。安全
若是出现:bash
或服务器
或网络
说明:openssh-server 已安装(安装步骤可跳过)。
因为 Ubuntu 20.04 (>=16.04) 默认安装了 ssh client,可是默认未安装 openssh-server。
当执行 ssh -V
命令显示的版本信息其实是 ssh client 的版本信息,而非 openssh-server 版本信息,于是不能经过此命令检查 是否已安装 openssh-server。
sudo apt update sudo apt install openssh-server
sudo /etc/init.d/ssh start # 或 sudo systemctl start ssh.service
sudo /etc/init.d/ssh start # 启动 sudo /etc/init.d/ssh stop # 中止 sudo /etc/init.d/ssh restart # 重启
或
sudo systemctl start ssh.service # 启动 sudo systemctl stop ssh.service # 中止 sudo systemctl restart ssh.service # 重启
或
sudo service ssh start # 启动 sudo service ssh stop # 中止 sudo service ssh restart # 重启
查看ssh是否启动,若是启动服务中有 sshd
,如有,说明已经启动.
sudo ps -e | grep ssh
终端输入
ssh localhost
“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!” 即:警告:远程主机标识已更改。
缘由: 此报错是因为远程的主机的公钥发生了变化致使的。
ssh服务是经过公钥和私钥来进行链接的,它会把每一个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,若是和上次记录的不一样,OpenSSH会发出警告。
解决办法: 删除对应ip的在known_hosts相关信息。
若是不能肯定ip,直接将 known_hosts 中全部内容所有内容删除,保存便可。
清空known_hosts后首次执行 ssh localhost
,添加公钥时会提醒选择 “Are you sure you want to continue connecting (yes/no/[fingerprint])? ”,输入 “yes” 回车便可。
再次执行 ssh localhost
,不会有上次的提醒,直接输入远程登录的帐户的密码便可。
ssh: connect to host localhost port 22: Connection refused。(不可以链接到本地主机端口22, 链接被拒绝)
这种状况(在能够正常上网的前提下)的缘由多是 openssh-server 未启动或未安装。
此时执行:sudo /etc/init.d/ssh start
若是提示“已启动”,这时可正常执行 ssh localhost
。
若是提示 “找不到此文件或命令” 那么根据前面的步骤先安装、再启动 openssh-server,最后执行 ssh localhost
。
终端运行运行如下命令,查看 IP 地址:
# 采用 NAT 桥接网络模式,在使用 ifconfig 查看ip前,须要执行如下命令, # 用 dhcp 服务获取 ip 地址 sudo dhclient -v # 查看 ip 地址 ifconfig
SSH 客户端 可使用 VMWare 自带工具 或 Xshell. 将 上面获得的 ip 地址在 SSH 客户端 配置便可。
# 卸载并删除配置文件 sudo apt-get purge openssh-server