SSH公钥(public key)验证

安全的设置服务器 登陆,之前用用户名和密码登陆服务器 这样不安全 ,用SSH公钥(public key)验证 这个办法能很好的解决 登陆服务器 和安全登陆服务器的特点:


目标: Client 免输密码ssh登录Server

SSH支持多种登录验证方式,我们默认使用的是键盘交互方式(keyboard-interactive),也就是手工输入密码的那种。这里我们要改成公钥(publickey)验证方式,并且设置passphrase为空,以达到免输密码登录的目的。

1. Client端:

cd ~/.ssh
#产生公钥文件(id_dsa.pub)和私钥文件(id_dsa), 类型DSA, 长度1024 bits
#注意询问passphrase的时候直接回车
ssh-keygen -t dsa -b 1024
#将公钥复制到远程主机去
scp id_dsa.pub Server:~/.ssh/id_dsa.pub.Client    //例如:scp id_dsa.pub 用户名@ip地址:目标路径 
                                                                                            scp  -P 端口号 id_dsa.pub 用户名@ip地址:目标路径 

2. Server端:

cd ~/.ssh
#将Client的公钥放入Server的信任列表
cat id_dsa.pub.Client >> authorized_keys
#更新权限,很重要
chmod 0600 *从此以后Client SSH登录Server就不要手工输入密码了。

scp是Linux下的远程拷贝

命令:

(1)将本地文件拷贝到远程:scp  文件名 用户名@计算机IP或者计算机名称:远程路径 
(2)从远程将文件拷回本地:scp  用户名@计算机IP或者计算机名称:文件名本地路径
(3)将本地目录拷贝到远程:scp -r目录名   用户名@计算机IP或者计算机名称:远程路径
(4)从远程将目录拷回本地:scp-r   用户名@计算机IP或者计算机名称:目录名本地路径

使用scp命令需要服务端linux提供ssh服务(linux默认是没有安装ssh服务的)

1.是否安装ssh:可连接相应的ssh服务查看,sshhost;如出现:ssh: connect to host *** port22:Connection refused,说明尚未安装ssh服务。

2.安装ssh服务:sudo apt-get install openssh-server自动安装ssh服务。

3.启动:sudo /etc/init.d/sshstart

4.停止:sudo /etc/init.d/sshstop

5.配置:ssh默认的端口是22,可以修改配置文件更改端口,然后重启ssh服务即可。(注:配置文件/etc/ssh/sshd_config)

说明:
该命令将在用户的主目录/.ssh目录下面产生一对密钥
一般采用的ssh的rsa密钥: 
id_rsa    私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa 
ssh-keygen -t rsa 
ssh-keygen -t rsa1 

下面关于SSH相关的文章您也可能喜欢,不妨参考下:

相关推荐