第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Centos服务器ssh登录设置密钥对登录

Centos服务器ssh登录设置密钥对登录

时间:2023-11-09 23:54:10

相关推荐

Centos服务器ssh登录设置密钥对登录

linux配置ssh密钥服务:

[root@localhost ~]# vim /etc/ssh/sshd_config

PasswordAuthentication yes //启用密码验证(改为no关闭密码登录)

AuthorizedKeysFile .ssh/authorized_keys //指定公钥库文件(公钥文本 cat /root/.ssh/id_rsa_1024.pub >>.ssh/authorized_keys )

PubkeyAuthentication yes //启用密钥对验证 (#去不去没关系,默认是开的)

:wq 保存文件

[root@localhost ~]# service sshd restart

拷贝密钥文件:

cat /root/.ssh/id_rsa_1024.pub > .ssh/authorized_keys

用xshell客户端测试连接一下 pw@wuma2**1 pw@ka**2**1

touch ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys

(注意: 必须将~/.ssh/authorized_keys的权限改为600, 该文件用于保存ssh客户端生成的公钥,可以修改服务器的ssh服务端配置文件/etc/ssh/sshd_config来换文件名,默认是叫authorized_keys)

代码如下:

cat id_rsa.pub > authorized_keys

#(将id_rsa.pub的内容替换到 authorized_keys 中, 也可以把多个证书用 >> 追加到这个文件下,只支持多个密钥对登录)

如果网络上的非秘钥对登录的服务器很容易受到攻击,最惨的就是被人登录并拿到root权限。有几个简单的防御措施:

1. 修改ssh服务的默认端口。

ssh服务的默认端口是22,一般的恶意用户也往往扫描或尝试连接22端口。所以第一步就是修改这个默认端口

打开/etc/ssh/sshd_config,找到

Port 22

然后将22修改为其它没有被占用的端口,如1022。最好在1-1024之间,防止与用户进程端口冲突。

然后重启sshd即可

sudo /etc/init.d/ssh restart

2. 限制IP

首先修改/etc/hosts.allow文件,将可访问服务器ssh服务的客户IP加入其中,格式如下

sshd:192.168.1.0/255.255.255.0

sshd: 202.114.23.45

sshd: 211.67.67.89

然后修改/etc/hosts.deny文件,加入禁用其它客户连接ssh服务

sshd: ALL

3.升级服务器

矛与盾的故事永远没有结局,经常升级服务器是必备的

apt-get update

apt-get dist-upgrade

4.检查登录日志

不怕一万,就怕万一,没有攻不破的城堡,有些小偷可能是小白,或者来也匆匆,去也匆匆,在服务器上做完坏事没有擦除痕迹,所以经常检查登录日志,也是一种安全手段

more /var/log/secure | grep 103.63.109.74 #安全日志

who /var/log/wtmp #登录日志

utmpdump /var/log/btmp | grep 103.63.109.74 #失败日志

最后一直使用了who /var/log/wtmp语句 ,才得到了我想要的数据,如下:

因为我这里只是做简单的演示,就直接使用root账号进行登录了。

root@MRtancp:~# who /var/log/wtmp

root tty1 -10-07 13:00

root pts/0 -10-29 17:12 (117.136.32.98)

root pts/1 -10-29 17:16 (117.136.32.98)

root pts/2 -10-29 17:16 (117.136.32.98)

root pts/3 -10-29 17:17 (117.136.32.98)

root pts/4 -10-29 17:17 (117.136.32.98)

root pts/5 -10-29 17:17 (117.136.32.98)

root pts/6 -10-29 17:17 (117.136.32.98)

root pts/7 -10-29 17:17 (117.136.32.98)

root pts/8 -10-29 17:21 (117.136.32.98)

root pts/9 -10-29 17:21 (117.136.32.98)

root pts/10 -10-29 17:21 (117.136.32.98)

root pts/11 -10-29 17:21 (117.136.32.98)

root pts/12 -10-29 17:22 (117.136.32.98)

root pts/13 -10-29 17:27 (117.136.32.98)

root@MRtancp:~#

以上是我使用本地的ssh远程登录的阿里云服务器获得记录的通,因为重复关掉重新连接了很多次,貌似确实能够记录了,每次的登录服务器的ssh名字,登录的时间和对应的终端的ip。

那接下来简单的介绍下ttyX ,和ptsX的意思了:

tty[1-6]就是你用ctr+alt+f[1-6]所看到的那个终端; 即虚拟控制台。另外tty7是表示图形界面,就是我们当前登录的是GNOME,当然就是图形界面了,而服务器上就只有命令行界面了。

(另外 :tty1-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换,+F7就是切换回图形界面。)

下面两行说明我当前打开了两个终端窗口,所以就有pts/0和pts/1其他的是外部终端和网络终端。

pts/*为伪(虚拟)终端, 其中pts/0,1,2...在桌面Linux中是标准输入,标准输出,标准出错。

另外我们也能简单的看一下这个账号登录干了些什么?

root账户下输入su - username

切换到username下输入

history

能看到这个用户历史命令,默认最近的1000条

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。