【转】服务器添加新用户用ssh-key 登陆,并禁用root用户 密码登陆

【转】Linux最高权限用户root,默承认以直接登陆sshd。为了提升服务器的安全度,须要对它进行禁止,使得攻击者没法经过暴力破解来获取root权限。linux

 

 ps: 如下内容皆非原创,只是我的的一个实践过程的一个记录,记录下来一是怕本身忘记,而是给像我那样的小白,能够一篇搞定服务器安全登陆问题。主要参考了几个优秀的博客文章,皆在文章后面列出,感谢原创!git

1、添加新用户而且修改sshd 默认端口

  1.1 新建用户

1,新建一个用户;github

#useradd xxx (xxx为你要新建的用户名)vim

2,为新用户设置密码;缓存

#passwd xxx (xxx为你要新建的用户名)安全

3,修改SSHD配置,禁止root直接登陆服务器

#vi /etc/ssh/sshd_configssh

查找“#PermitRootLogin yes”,将前面的“#”去掉,段末“yes”改成“no”(不一样版本可能区分大小写),并保存文件。函数

 

4.为新添加的用户添加root权限工具

vi /etc/sudoers 
#方法一:将下面#号去掉,保存
#%wheel ALL=(ALL) ALL
修改新添加的用户,使属于root组
#usermod -g root xxx
#方法二:直接添加root权限, 直接复制下面root的那行,用户改为咱们新添加的用户就能够了
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
xxx ALL=(ALL) ALL

权限添加完以后,使用xxx用户登陆操做,提示权限不足的时候,就能够直接sudo啦

注:要是找不到sudoers,那么就先安装sudo吧 yum install sudo.

 

  1.2修改sshd默认端口

虽然更改端口没法在根本上抵御端口扫描,可是,能够在必定程度上提升防护。

1.打开sshd配置文件

#vi /etc/ssh/sshd_config

2.找到#Port 22字段删掉#,将22改成其余不被使用的端口

服务器端口最大能够开到65536

3.重启sshd服务

#service sshd restart

4.别忘了修改登录工具那的端口设置。

2、为新用户添加ssh-key登陆,禁止密码登陆

 1. 生成ssh-key

ssh-keygen -t rsa -f test -C "test key" //-f 文件名 -C 备注  -t 类型

2. 上传公钥到服务器

ssh-copy-id -i ~/.ssh /id_rsa.pub  A@IP_address 
//这一步会将公钥上传到 A 中的 /home/A/.ssh/authorized_keys
// 文件,是用来存放受权密钥的authorized_keys

3. 设置服务器公钥的权限

chmod 400 /home/A/.ssh/authorized_keys
#将 authorized_keys 的权限设置为对拥有者只读,其余用户没有任何权限

chattr +i /home/A/.ssh/authorized_keys
#保证 authorized_keys 的权限不会被改掉

chattr +i /home/A/.ssh
#设置 ~./ssh 的 immutable 位权限,
#防止重命名 ~/.ssh ,而后新建新的 ~/.ssh 目录和 authorized_keys 文件

4. 尝试使用ssh-key登陆服务器

ssh -i  /user/.ssh /id_rsa  A@IP_address  
#利用 SSH-Key 登录普通帐户 A ,看是否成功

5.若是成功登录 A, 编辑 服务器上面的sshd_config 文件

su root #切换root帐号
vim /etc/ssh/sshd_config #按 i 进入编辑 确保(去掉注释#) RSAAuthentication yes #容许 RSA 认证 PubkeyAuthentication yes #容许公钥认证 PermitRootLogin no #禁止 ROOT 登录 PasswordAuthentication no #禁止密码登录 修改端口, 将 #Port 22 改成 Port 端口号数字 #改掉默认端口 按 esc 退出编辑,:wq #保存并退出 sshd_config service sshd restart #重启 SSH

 6.配置本地ssh config,方便登陆。多个 ssh 帐号须要配置,在 config 文件里隔行分开写就行

vi ~/.ssh/config  #在私钥所在的.ssh 文件夹内新建一个 config 文件

按 i 编辑,复制如下内容
Host vps                      #这个名字随意,感受像调用函数
HostName IP_address           #IP 地址或服务器域名 
Port XX                       #服务器端开放的 ssh 端口,第 7 步中改的端口
User A                        #登陆的用户名 
IdentityFile ~/.ssh/ id_rsa   #使用的密钥文件密钥文件,本地私钥地址

Host vps2
…… 按 esc 退出编辑,输入:wq 退出并保存

#ssh vps 就能直接登陆vps啦!

另外备注一点, github 用ssh下载的话,会发现permison denied!

检测是因为默认是读取id_rsa 的秘钥,我已经命名成了github,因此找不到就一直连不上

把代码加到缓存ssh-agent 的高速缓存里面

ssh-add ~/.ssh/id_dsa

来自: http://man.linuxde.net/ssh-add
 ssh-add  ~/.ssh/github 

另一种方法就是在ssh config里面添加咱们的github信息

Host personal  
    HostName github.com  
    User git  
    IdentityFile ~/.ssh/work_rsa

测试 ssh - T git@personal  成功

 

git clone git@personal:MorePainMoreGain/datetimepicker.git #MorePainMoreGain 用户名 datetimepicker 仓库名

 

 

参考博客:

ssh禁止root用户直接登陆并修改默认端口;

Linux 0 基础,在 VPS 上禁止 ROOT 帐户,禁用密码登陆,新建普通帐户 A 并经过 SSH-Key 登录 A 的方法 (欢迎指正:) OS: OS X 10.10.5

linux普通用户获取管理员权限

相关文章
相关标签/搜索