Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu服务器常用配置-SSH的配置 #4

Open
hehongwei44 opened this Issue Sep 26, 2015 · 0 comments

Comments

Projects
None yet
1 participant
@hehongwei44
Copy link
Owner

hehongwei44 commented Sep 26, 2015

SSH基础介绍

SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器 。SSH的简介和工作机制可参看上篇文章 SSH简介及工作机制

SSH分客户端openssh-client和服务器端openssh-server。如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server

安装客户端(openssh-client)

Ubuntu默认已经安装了客户端openssh-client。如果没有安装的话,那么可以通过下面的命令进行安装。

sudo apt-get install ssh  或 sudo apt-get install openssh-client
ssh-keygen (**按缺省生成id_rsa和id_rsa.pub文件,分别是私钥和公钥**)

PS:如果sudo apt-get insall ssh出错无法安装,则可使用sudo apt-get install openssh-client进行安装。

假定服务器ip为192.168.1.1,ssh服务的端口号为22,服务器上有个用户为root;
用ssh登录服务器的命令为:

>ssh –p 22 root@192.168.1.1
>输入root用户的密码

安装服务端(openssh-server)

Ubuntu默认没有安装SSH Server,使用以下命令安装:

sudo apt-get install openssh-server

然后确认sshserver是否启动了:(或用“netstat -tlp”命令)

如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。如果没有则可以这样启动:

sudo /etc/init.d/ssh start

事实上如果没什么特别需求,到这里 OpenSSH Server 就算安装好了。但是进一步设置一下,可以让 OpenSSH 登录时间更短,并且更加安全。这一切都是通过修改 openssh 的配置文件 sshd_config 实现的。

SSH配置

ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务,重启的命令如下:

sudo /etc/init.d/ssh resart  

通过修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original  (**修改配置时最好进行备份**)
sudo chmod a-w /etc/ssh/sshd_config.original  (**禁止写权限,最大程度保护备份文件**)

编辑配置文件命令:

gedit 或 vim /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个五位的端口:Port 22333 (修改端口)
找到#PermitRootLogin yes,去掉注释,修改为:PermitRootLogin no (禁止root登录)

配置完成后重起,重启命令如下:

sudo /etc/init.d/ssh restart 

随便说下,停止ssh的命令如下:

sudo /etc/init.d/ssh stop

SSH服务命令总结

停止服务:sudo /etc/init.d/ssh stop

启动服务:sudo /etc/init.d/ssh start

重启服务:sudo /etc/init.d/ssh resart

断开连接:exit

SSH登录命令

常用格式:ssh [-l login_name] [-p port] [user@]hostname

不指定用户:

ssh 192.168.0.1

指定用户:

ssh -l root 192.168.0.1  
ssh root@192.168.0.1 

如果修改过ssh登录端口的可以:

ssh -p 22333 192.168.0.111  
ssh -l root -p 22333 216.230.230.105  
ssh -p 22333 root@216.230.230.105     

提高登录速度

在远程登录的时候可能会发现,在输入完用户名后需要等很长一段时间才会提示输入密码。其实这是由于 sshd 需要反查客户端的 dns 信息导致的。可以通过禁用这个特性来大幅提高登录的速度。首先,打开 sshd_config 文件:

sudo vim /etc/ssh/sshd_config 

找到 GSSAPI options 这一节,将下面两行注释掉:

#GSSAPIAuthentication yes 
#GSSAPIDelegateCredentials no

然后重新启动 ssh 服务即可。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.