在某些时候,使用密码做为登陆服务器的认证方式是不太安全的,为避免密码被暴力破解,许多时候能够采用ssh密钥登陆服务器,这里以CentOS为例。linux
第一步shell
生成秘钥对windows
方法1、在服务器上利用ssh-keygen生成,进入到 /root/.ssh/ 输入:安全
ssh-keygen -t rsa服务器
一路enter跳过(固然你也能够本身定义,不过不必),会在/root/.ssh下生成公钥(id_rsa.pub)私钥(id_rsa) (公钥是用于服务器端,私钥是用于客户端) 而后将私钥下载至电脑上(登陆时会用到)。ssh
使用Xshell工具下载私钥工具
一、使用xshell来操做服务很是方便,传文件也比较方便。加密
二、就是使用rz,sz首先,服务器要安装了rz,sz rest
三、yum install lrzsz 安装最后会选择y,在回车安装完成io
四、运行rz,会将windows的文件传到linux服务器
五、运行sz filename,会将文件下载到windows本地
方法2、利用远程工具(如Xshell)生成
这里以Xshell为例,点击”工具-新建用户密钥生成向导”所有默认,下一步,提示输入密钥加密的密码,这里能够为空,下一步,将公钥保存为文件,命名为id_rsa.pub,上传到服务器/root/.ssh下。
第二步、修改/etc/ssh/sshd_config以下部分
一、RSAAuthentication yes 开启RSA验证
二、PubkeyAuthentication yes 是否使用公钥验证
三、AuthorizedKeysFile .ssh/authorized_keys 公钥的保存位置
四、PasswordAuthentication no 禁止使用密码验证登陆
这里最好是禁止使用密码验证登陆,不然用密钥就没多大意义了。更改后保存。
第三步、进入到密钥保存的目录:
cd/root/.ssh 新建密钥验证文件”authorized_keys”,并将公钥输出重定向覆盖密钥验证文件
touch authorized_keys
cat id_rsa.pub >> authorized_keys 这里建议使用追加而不是覆盖
修改authorized_keys文件权限为600
chmod 600 /root/.ssh/authorized_keys
第四步、重启ssh服务
一、#CentOS 7以前的版本请执行:
service sshd restart
二、#CentOS 7请执行:
systemctl restart sshd.service
接下来就可以经过密钥登陆服务器了
在打开链接的时候会提示导入用户密钥,选择以前保存的私钥文件”id_rsa”便可。