[置顶] linux xshell5 ssh 证书远程登录配置、添加用户ssh配置
2016-06-04 18:36
477 查看
第一步添加用户:
方法一:wget http://localhost/adduser.sh -O key.sh; /bin/sh key.sh testusername; rm -f key.sh
方法二:直接上传key.sh 后执行
/bin/sh key.sh testusername; rm -f key.sh
key.sh脚本文件:注意:脚本文件里的链接 http://localhost/soft/ssh/$1.key 是生成的密钥证书(可有,可无),
没有的话就要自己自行将生成的密钥内容复制到
/home/$1/.ssh/目录下的 authorized_keys文件中(注意复制时前面可能会少个字母,对比下复制前后内容是否一致,小编在这里被坑了半天)
if [ $# -eq 1 ];then /usr/sbin/userdel $1; /usr/sbin/groupdel $1; /usr/sbin/useradd -g users $1; /usr/bin/passwd -u $1; /usr/bin/passwd -u -f $1; /usr/bin/passwd -d $1; /usr/bin/passwd -uf $1; mkdir /home/$1 mkdir /home/$1/.ssh; wget http://localhost:8080/soft/ssh/$1.key -O /home/$1/$1.key cat /home/$1/$1.key > /home/$1/.ssh/authorized_keys; chown -R $1 /home/$1; chgrp -R users /home/$1; chmod 700 /home/$1; chmod 700 /home/$1/.ssh; chmod 600 /home/$1/.ssh/*; chown -R $1 /home/$1/.ssh; rm -f /home/$1/$1.key; fi
下面这段shell有隐藏字符,可能运行不了,其实与上面的一样的,仅供阅读
第二步制作密钥
方法一:使用xshell 工具制作:
具体步骤就不介绍了,自己网上搜索一大堆
在Xshell -----工具-----新建用户密钥生成向导
生成的密钥内容格式是这样的:
方法二使用ssh命令制作:
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;
把生成好的密钥
复制到/home/$1/.ssh/目录下的 authorized_keys文件中
第三步修改 ssh配置文件:
//查看系统版本
[root@localhost cat /etc/redhat-release
//修改ssh配置 增加一个ssh端口
[root@localhost ssh]# vi sshd_config
修改sshd_config配置文件
vi /etc/ssh/sshd_config
PubkeyAuthentication yes #启用公告密钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #设定PublicKey文件路径
RSAAuthentication yes #允许RSA密钥
PasswordAuthentication no #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
重新加载sshd服务: /etc/init.d/sshd restart
//重启ssh服务
[root@localhost ssh]# /etc/init.d/sshd restart
查看日志:
tail -f /var/log/secure 也没有相应的错误日志
在ssh配置文件增加了端口,还要把端口开放出来:
开放端口:
LINUX通过下面的命令可以开启允许对外访问的网络端口:
/sbin/iptables -I INPUT -p tcp --dport 18834 -j ACCEPT #开启18834端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
查看端口是否已经开放
/etc/init.d/iptables status
参考命令配置:
vim /etc/ssh/sshd_config
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
第四步测试:测试了连个用户测试通过
二
方法一:wget http://localhost/adduser.sh -O key.sh; /bin/sh key.sh testusername; rm -f key.sh
方法二:直接上传key.sh 后执行
/bin/sh key.sh testusername; rm -f key.sh
key.sh脚本文件:注意:脚本文件里的链接 http://localhost/soft/ssh/$1.key 是生成的密钥证书(可有,可无),
没有的话就要自己自行将生成的密钥内容复制到
/home/$1/.ssh/目录下的 authorized_keys文件中(注意复制时前面可能会少个字母,对比下复制前后内容是否一致,小编在这里被坑了半天)
if [ $# -eq 1 ];then /usr/sbin/userdel $1; /usr/sbin/groupdel $1; /usr/sbin/useradd -g users $1; /usr/bin/passwd -u $1; /usr/bin/passwd -u -f $1; /usr/bin/passwd -d $1; /usr/bin/passwd -uf $1; mkdir /home/$1 mkdir /home/$1/.ssh; wget http://localhost:8080/soft/ssh/$1.key -O /home/$1/$1.key cat /home/$1/$1.key > /home/$1/.ssh/authorized_keys; chown -R $1 /home/$1; chgrp -R users /home/$1; chmod 700 /home/$1; chmod 700 /home/$1/.ssh; chmod 600 /home/$1/.ssh/*; chown -R $1 /home/$1/.ssh; rm -f /home/$1/$1.key; fi
下面这段shell有隐藏字符,可能运行不了,其实与上面的一样的,仅供阅读
if [ $# -eq 1 ];then /usr/sbin/userdel $1; /usr/sbin/groupdel $1; /usr/sbin/useradd -g users $1; /usr/bin/passwd -u $1; /usr/bin/passwd -u -f $1; /usr/bin/passwd -d $1; /usr/bin/passwd -uf $1; mkdir /home/$1 mkdir /home/$1/.ssh; wget http://localhost/soft/ssh/$1.key -O /home/$1/$1.key cat /home/$1/$1.key > /home/$1/.ssh/authorized_keys; chown -R $1 /home/$1; chgrp -R users /home/$1; chmod 700 /home/$1; chmod 700 /home/$1/.ssh; chmod 600 /home/$1/.ssh/*; chown -R $1 /home/$1/.ssh; rm -f /home/$1/$1.key; fi
第二步制作密钥
方法一:使用xshell 工具制作:
具体步骤就不介绍了,自己网上搜索一大堆
在Xshell -----工具-----新建用户密钥生成向导
生成的密钥内容格式是这样的:
ssh-dss AAAAB3NzaC1kc3MAAACBAJH9syp+JSnLuXZfaxtrzXk+r22e304SrneEA7NjVpPmF0IsY8SDS/6OBz9nJ3U6PugzDUXkYWHwtOQ0Z27FdFoepBgxGWF7lK8648oNgYD6H9ia3QelEgpWvoiyQV6MIuG7weytYHrZwQyjIyyVmJ7l0TodPmZ9XZmfTnReOF+1AAAAFQC+JVWUSThkbhGUJGw6i3/Md4zDgQAAAIAkaJEMIo2UoJZBXVFUwjifvaN4E38kftReRrmAaOh5xCZdp3kUhmFxayOyGHEkeekU5I18wOk+83O/w/j3KWutaGsZaGa/ujuMSBkc5NwjVPBlvSp0VIuJ2c2CNz0ksAHNUrRkVwYlkk/PTlza8GSZSfGKQ1gRwlnHxGiCrZ5NmwAAAIBMs0LgF++IcjzK1z6rIvMYba0V/UNe77bN+l10cfDv0DI7zbVfucWWjvrUAhxPIqLXVCoFPOesow8D36blNj0xcbogz+LbAux2da4o/V9bJobKyLVHqTH2MnxnZOhTwvPK76u+Qzzk00kiPGzTaIldG0OKebRnpDMeZkJuFkJtRA==
方法二使用ssh命令制作:
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;
[root@localhost .ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
把生成好的密钥
复制到/home/$1/.ssh/目录下的 authorized_keys文件中
第三步修改 ssh配置文件:
//查看系统版本
[root@localhost cat /etc/redhat-release
//修改ssh配置 增加一个ssh端口
[root@localhost ssh]# vi sshd_config
修改sshd_config配置文件
vi /etc/ssh/sshd_config
PubkeyAuthentication yes #启用公告密钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #设定PublicKey文件路径
RSAAuthentication yes #允许RSA密钥
PasswordAuthentication no #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
重新加载sshd服务: /etc/init.d/sshd restart
//重启ssh服务
[root@localhost ssh]# /etc/init.d/sshd restart
查看日志:
tail -f /var/log/secure 也没有相应的错误日志
在ssh配置文件增加了端口,还要把端口开放出来:
开放端口:
LINUX通过下面的命令可以开启允许对外访问的网络端口:
/sbin/iptables -I INPUT -p tcp --dport 18834 -j ACCEPT #开启18834端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
查看端口是否已经开放
/etc/init.d/iptables status
参考命令配置:
vim /etc/ssh/sshd_config
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
第四步测试:测试了连个用户测试通过
二
相关文章推荐
- 使用定时任务运行powershell脚本
- 面试题总结之Linux/Shell
- Shell编程实现俄罗斯方块游戏(一步步详解)一
- 用Shell命令批量压缩指定目录下指定目录到目标目录中
- Python查看远程主机端口是否开放以及BashShell实现
- SQL Server如何启用xp_cmdshell组件
- 第一部分:JDK的源码安装和常用shell操作
- Unit Testing PowerShell Code with Pester
- Pester: Unit Testing for PowerShell
- powershell-无法加载文件,因为在此系统中禁止执行脚本
- bash手册 之重定向原理与实现
- Linux操作系统基础解析之(七)——Bash(Shell)基础知识(4)
- Linux操作系统基础解析之(七)——Bash(Shell)基础知识(3)
- Shell脚本调试技术
- shell if 判断
- HBASE启动脚本/Shell解析
- BASH内置变量
- erlang 多种方法接入远程shell控制台
- shell内建(built in)命令
- 四、Shell输入、输出功能和字符颜色设置