专栏首页智慧协同Linux实现SSH远程登录

Linux实现SSH远程登录

转自:http://songtl.com/linux-ssh-setting.html

远程登录方式有telnet和ssh两种方式,由于telnet使用的是明文传输,传输过程中系统帐号密码等重要信息容易被截获,安全性比不上SSH(secure shell),因此现在一般都使用SSH作为远程登录的工具。

其实很多linux版本如ubuntu已经内置了ssh-agent,这是一个远程连接的工具,通过ssh-agent可以发起远程连接,但是如果你要想实现在其他电脑远程登录自己的电脑,就必须安装openssh,可以通过以下命令 ubuntu

sudo apt-get install openssh

ArchLinux

sudo pacman -S openssh

系统会自动下载并完成安装,完成后可通过以下命令查看ssh服务是否启动

ps -ef | grep sshd

如果没有sshd这个进程,手动启动 ubuntu

sudo /etc/init.d/ssh start

ArchLinux

sudo /etc/rc.d/sshd start

ArchLinux把sshd添加到DAEMONS数组开机启动

DAEMONS=(syslog-ng network crond dbus alsa @openntpd sshd)

如果出现sshd进程,表示ssh服务已经启动,此时不出意外你在其他电脑上就可以通过ssh连接到自己的电脑上面了。关于ssh连接的工具,windows平台上面推荐Secure-CRT软件,这是一个非常受欢迎的软件,使用也比较简单。也可以选择Putty,不过建议下载官方英文版,前段时间汉化版的putty有后门的事在网上炒得沸沸扬扬。Linux系统因为已经自带ssh-agent所以比较方便,直接在terminal里面输入以下命令

ssh username@ip

username是你的登录账户,ip即ip地址,当然你也可以使用域名

ssh username@domain

此时系统会要求你输入密码进行验证,验证通过就能登录到远程主机.为了安全起见,需要进行一些简单的配置,否则日后查看ssh日志文件的时候会发现大量ip的登录失败信息。其实是别人通过端口扫描软件扫描出开启来22(ssh默认)端口的主机,然后通过穷举法进行密码猜解,如果你使用的是弱口令,被猜解出的几率是非常高的。

配置文件路径

ubuntu

/etc/ssh/ssh.conf

Archlinux

/etc/ssh/sshd.config

我们可以通过编辑这个文件来进行配置。当你尝试登录别人的主机的时候你会以什么身份登录?当然是root用户,因为root是每个Linux系统都存在的用户。因此我们应该禁用root用户登录,找到

PermitRootLogin yes

把yes改为no即可。

端口扫描软件默认扫描22端口,因此我们也可以把端口改成其他端口,找到以下语句

port 22

把其中的22改成你其他端口,比如1022之类的。

限制一下最大密码错误次数,3次吧,自己登录基本不会连续错3次,密码错误超过3次拒绝登录

MaxAuthTries 3

修改之后保存退出,重启ssh服务

ubuntu

sudo /etc/init.d/ssh restart

ArchLinux

sudo /etc/rc.d/sshd restart

注意,修改了端口之后用CLI模式登录时需要声明端口

ssh -p 1022 username@ip

通过简单的配置后你会发现来自不明ip的失败登录明显的减少。忘了说,ssh登录日志保存在这个文件

/var/log/auth.log

在Archlinux下这个文件的拥有者为root,群组为log,权限为640,为了方便普通用户查看日志,把用户加入到log组(不推荐others加权限)

sudo gpasswd -a song log

平时可以cat一下这个文件看看登录记录,当然有时文件会比较长,特别是没禁用root用户之前,往往来自同一个ip的登录失败次数达到数千条,如果你一行行查看得看到什么时候,因此我们只输出root登录失败的记录(虽然禁用root登录,但有人尝试以root身份登录时系统仍会记录)

grep "Failed password for root" /var/log/auth.log | awk {'print $11'} | uniq -c | sort -rn

系统会列出曾经登录失败的ip并且统计失败次数从高到底排列,当然你也可以输入登录成功的记录

grep "Accepted password for " /var/log/auth.log

系统会列出曾经登录主机的记录,包括时间、ip地址等

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记一次iTerm2折腾

    iTerm2是Mac平台上强大的终端管理工具,其可谓家喻户晓,这里就不过多介绍了,这里只记录一下如何解决我的问题。

    飞奔去旅行
  • Vue Cli3 开启gzip打包及后台nginx配置

    增加了以上选项是为了让vue build 输出gzip文件,如果要站点生效,还需要配置nginx增加以下配置:

    飞奔去旅行
  • Spring MVC 4+ 简单几步开启对JsonP的支持

    Spring 4中增加了对jsonp的原生支持,只需要@ControllerAdvice就可以开启,方法如下:

    飞奔去旅行
  • SSH免密远程登录的配置与实现

    操作系统:CentOS Linux release 7.4.1708 (Core)

    耕耘实录
  • 远程rsync实时备份方案脚本

    准备环境: 首先,想要使用远程备份,必须要让远程主机信任你,让你能够使用ssh无验证登陆。 ssh无密码登陆原理: 首先在客户端上创建一对公私钥 (公钥文件:~...

    BGBiao
  • linux ssh安全设置

    修改ssh端口号: Port 8622 指定要绑定的网络接口,默认是监听所有接口,建议绑定到内网通讯的网卡地址 ListenAddress 192.168.1...

    joshua317
  • 优秀工具 | Xray:一款功能强大的Web安全评估工具

    近几日,上线了一款功能强大的Web安全评估工具 - Xray,据说很多小伙伴都拿它挖到了漏洞,这几天我也试试了,确实不错,至于漏洞嘛,也是扫到了几个。还在继续深...

    7089bAt@PowerLi
  • 这么说吧,NIO很简单,其实就是个牛逼IO,吹牛逼用的

    NIO 也能算是一种思想,非阻塞IO通信思想,Netty就是基于NIO思想的NIO框架,

    java进阶架构师
  • js操作DOM在父元素中的结尾添加子节点注意

    所以js是不能直接传入字符串的,但是jquery的append可以直接传入html字符串。

    蓓蕾心晴
  • Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件

    Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现...

    FungLeo

扫码关注云+社区

领取腾讯云代金券