菜鸟笔记
提升您的技术认知

SSH远程登录

配置远程Server

保证两点:1. SSH Server安装并运行;2.防火墙关闭

Ubuntu版本-安装运行SSH

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

sudo apt-get install openssh-client 
sudo apt-get install openssh-server 

启动服务器的SSH服务
首先确认ssh-server是否已经启动了

ps -e | grep ssh

如图,sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

sudo /etc/init.d/ssh start 

停止和重启ssh服务的命令如下:

sudo /etc/init.d/ssh stop  #server停止ssh服务 
sudo /etc/init.d/ssh restart  #server重启ssh服务

Ubuntu版本关闭防火墙

1、首先打开Ubuntu的终端命令行
为使用bash命令 我们需要打开终端工具 我们可以使用alt+t 快捷键打开终端。也可以使用鼠标单击终端工具。

2、查看当前防火墙状态
在Ubuntu中 我们使用sudo ufw status命令查看当前防火墙状态;inactive状态是防火墙关闭状态 active是开启状态。
3、开启防火墙
在Ubuntu中 我们使用sudo ufw enable命令来开发防火墙 通过sudo ufw status命令查看开启防火墙后的状态为active 说明防火墙开启成功。

4、关闭防火墙
在Ubuntu中 我们使用sudo ufw disable命令来关闭防火墙。执行该命令之后 我们使用sudo ufw status命令来查看当前防火墙的状态 如果是inactive 说明我们的防火墙已经关闭掉了。

5、Ubuntu中其他常用的防火墙命令

ufw default allow/deny  # 外来访问默认允许/拒绝
ufw allow/deny 20  #允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。
ufw allow/deny servicename  # ufw从/etc/services中找到对应service的端口,进行过滤。
ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25  
#允许自10.0.1.0/10的tcp封包访问本机的25端口。
ufw delete allow/deny 20 #删除以前定义的"允许/拒绝访问20端口"的规则

Centos 7版本-关闭防火墙

使用命令“systemctl status firewalld.service”查看防火墙状态:
按下回车键执行后,可以看到标注的“active(running)”,说明防火墙是开启状态:

1、首先打开xshell软件连接到centos主机,使用命令“systemctl status firewalld.service”查看防火墙状态:

2、按下回车键执行后,可以看到标注的“active(running)”,说明防火墙是开启状态:

3、命令行里敲入命令“systemctl stop firewalld.service”,可以关闭运行的防火墙:

4、关闭后再使用命令systemctl status firewalld.service查看防火墙状态,如果出现disavtive(dead)的字样,说明防火墙已经关闭:

5、设置永久关闭防火墙,输入命令“systemctl disable firewalld.service”,即可永久禁止防火墙服务,下次重启也不会开启。以上就是cnetos7永久关闭防火墙的操作:


查看防火墙状态: systemctl status firewalld.service
执行关闭命令: systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service
启动:systemctl start firewalld.service
防火墙随系统开启启动 : systemctl enable firewalld.service

Centos版本启动SSH

1、查看SSH是否安装(检查是否装了SSH包)。
输入命令:rpm -qa | grep ssh
如图所示说明centos 6.5系统已经为我们默认安装了SSH包。

注:若没安装SSH则可输入:yum install openssh-server安装。

2、查看SSH服务是否正在运行。
输入命令:/etc/init.d/sshd status

3、若centos 6.5系统中SSH服务处于非运行状态则使用(service sshd start)命令开启SSH服务;停止SSH服务命令(service sshd stop);重启SSH服务命令(service sshd restart)。为了演示效果,我这里先停止SSH服务,然后启动SSH服务,再接着重启SSH服务。
[service sshd stop] -> [/etc/init.d/sshd status] -> [service sshd start]-> [service sshd restart] ->[重启后可输入:netstat -antp | grep sshd 查看是否启动22端口]

4、检查SSHD是否在本运行级别下设置为开机启动
输入命令:chkconfig --list sshd
如图所示centos 6.5系统中SSH服在本运行级别下已经设置为开机启动,如果没设置启动就使用如下命令[chkconfig --level 2345 sshd on]设置下即可。

5、设置SSH服务为开机启动。
输入命令:chkconfig sshd on 即可。
注:若是chkconfig sshd off则禁止SSH开机启动。

默认配置

  Windows下有很多SSH工具。在这里我是用的是CMD自带的SSH命令。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:

ssh 用户名@IP地址

  一般来说为了安全性考虑,端口号等一些参数并不会使用默认值22。这样的话命令就变成这样:

ssh 用户名@IP地址 -p 端口号

  如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。

密钥登录

  每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。

  首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的.ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。

ssh-keygen

  然后将本地公钥添加到服务器中,需要使用另一个命令:

scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径

  然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的.ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。