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相关的文章您也可能喜欢,不妨参考下: