使用密钥登录的好处:1、省事,不用每次去敲用户名和密码;2、安全,密钥长度一般是1024位,比我们设的密码要长得多;

以下是为新用户jackson添加密钥登录的步骤。

1、添加用户,并添加到sudoer。

useradd jackson
passwd jackson

添加到sudo组

visudo

在 root ALL=(ALL) ALL 后添加 hubery ALL=(ALL) ALL

2、生成并添加公钥到Server

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub -p [port] user@server

如果当前用户不能ssh登陆(已经关闭了密码登录的情况),则可以

#local
scp -P [port] id_rsa.pub user1@server:/home/user1/
ssh user1@server -p [port]
su user2
cd ~
mkdir .ssh
chmod .ssh
cd .ssh
touch authorized_keys
chmod authorized_keys
sudo cat /home/user1/id_rsa.pub > authorized_keys

注意~/.ssh和~/.ssh/authorized_keys的权限。
本地添加私钥

vim ~/.ssh/config

添加以下内容

#iksdbsrvice
Host 192.168.0.122 IdentityFile ~/.ssh/id_rsa

注意,Host前没有空格,IdentifyFile前为一个tab

3、修改ssh配置文件,路径为/etc/ssh/sshd_config,去注释或修改一下内容

#
Port
#
PermitRootLogin no
#
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys PermitEmptyPasswords yes
PasswordAuthentication no
UsePAM no
X11Forwarding yes

以上部分修改了sshd的端口,禁止了root用户的远程登陆,开启了密钥登录,禁止了密码登录。对于多个服务器的管理,我是直接替换的文件,这样简单且保持了一致性。

//local
scp -P [port] sshd_config user@server:/your/home/
//server
sudo cp ~/sshd_config /etc/ssh/sshd_config

4、iptables设置

sudo iptables -I INPUT  -p tcp --dport -j ACCEPT
sudo service iptables save

5、重启sshd服务,测试登录

sudo service sshd restart
ssh user@server -p [port]

6、ssh登录时响应慢

常见的原因是因为server的sshd会去DNS查找访问client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。在server上/etc/ssh/sshd_config文件中修改或加入 UseDNS=no,另外在authentication gssapi-with-mic也有可能出现问题,在server上/etc/ssh/sshd_config文件中修改 GSSAPIAuthentication no。

注意:在没有测试通过之前,不要关闭之前打开的终端,这样即使是改错了,也是可以用这个终端改回来的。

Linux服务器密钥安全登录的更多相关文章

  1. 为Linux服务器的SSH登录启用Google两步验证

    对于Linux服务器而言使用密钥登录要比使用密码登录安全的多,毕竟当前网上存在多个脚本到处进行爆破. 这类脚本都是通过扫描IP端的开放端口并使用常见的密码进行登录尝试,因此修改端口号也是非常有必要的. ...

  2. Linux ssh密钥自动登录(转)

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B,需要以下几个步骤: ...

  3. Linux ssh密钥自动登录 专题

    在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐.使用密钥登陆就可以不用输入用户名和密码了 实现从主机A免密码登陆到主机B(即把主机A的pub ...

  4. Linux服务器限制ssh登录,查看登录日志

    网络上的服务器很容易受到攻击,最惨的就是被人登录并拿到root权限.有几个简单的防御措施: 1. 修改ssh服务的默认端口 ssh服务的默认端口是22,一般的恶意用户也往往扫描或尝试连接22端口.所以 ...

  5. 如何在Windows系统上利用Telnet协议连接Linux服务器

    Telnet协议是Internet远程登录服务的标准协议,它为用户提供了在本地计算机上完成远程主机工作的能力.很多终端使用者都习惯在计算机上利用Telnet会话来远程控制服务器.这里小编就分两步为大家 ...

  6. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

  7. 使用XShell工具密钥认证登录Linux系统

    如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥.哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方式登 ...

  8. 使用ssh公钥密钥自动登陆linux服务器

    转自:http://7056824.blog.51cto.com/69854/403669 作为一名 linux 管理员,在多台 Linux 服务器上登陆进行远程操作是每天工作的一部分.但随着服务器的 ...

  9. [zz] 使用ssh公钥密钥自动登陆linux服务器

    目录 .生成密匙对 .拷贝公匙到远程机 .启动登陆代理 这种方法处理后每次需要运行命令:ssh-add ~/.ssh/id_dsa 作为一名 linux 管理员,在多台 Linux 服务器上登陆进行远 ...

随机推荐

  1. js第三天知识点 循环

    /*for(重点) *while *do..while * *3种循环的区别: *for 主要适用于 明确循环次数的 循环 *while  适用于 不明确循环次数的循环 *do..while 适用于 ...

  2. 关于控制反转(IOC)容器 ,依赖注入(DI)模式必读文章收集

    推荐一篇国外設計大師Martin Fowler的大作:Inversion of Control Containers and the Dependency Injection pattern http ...

  3. windbg 加载dump监测蓝屏原因时出现重复的星星框提示解决办法

    加载dump文件出现了重复上边的信息 总结: 要reload一下环境,说明符号库未加载出现的错误,!sym noisy 显示详细信息 ,reload重载符号库,未找到的,从服务器进行下载, 注意,第一 ...

  4. Oracle 修改字段顺序的两种方法

    分类: Oracle 如果要修改字段顺序,一般情况可以使用以下步骤: --(1)备份目标表数据 create table 临时表 as select * from 目标表; --(2)drop 目标表 ...

  5. DOM系列基础知识

    DOM (Document Object Model) 即文档对象模型, 针对 HTML 和 XML 文档的 API (应用程序接口) .DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改 ...

  6. 性能(js)

    1.避免全局查找: <script type="text/javascript"> function updateUI(){ var imgs=document.get ...

  7. js对象(BOM部分/DOM部分)

    JS总体包括ECMAScript,DOM,BOM三个部分,但是能够和浏览器进行交互的只有DOM和BOM,那么到底什么是DOM和BOM呢 概念 BOM(Browser Object Model)是指浏览 ...

  8. VirtualBox安装android-x86-4.4-r2

    https://jingyan.baidu.com/album/a681b0de1373133b184346cf.html?picindex=10

  9. 10. pt-fk-error-logger

    pt-fk-error-logger DSN 外键约束相关的,不关注.

  10. Python之路(第十篇)迭代器协议、for循环机制、三元运算、列表解析式、生成器

    一.迭代器协议 a迭代的含义 迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 b为何要有迭代器? 对于序列类型:字符串.列表 ...