Linux免密登录
管理Linux服务器的是否,每次SSH登录时或者使用scp复制文件时都要输入密码是一个繁琐的过程.
本文介绍使用SSH Key来实现SSH无密码登录,而且使用scp复制文件时也不需要再输入密码。方便SSH登录,scp复制文件。
SSH免密登录的设置步骤
- 首先在自己的Linux系统上生成一对SSH Key:SSH密钥和SSH公钥。密钥保存在自己的系统上,一般在
~/.ssh/
目录下。 - 将公钥上传到Linux服务器。之后就能无密码SSH登录了。
具体操作
生成生成公钥和私钥
打开终端,使用下面的ssh-keygen来生成RSA密钥和公钥.-t表示type,就是说要生成RSA加密的钥匙.
ssh-keygen -t rsa
RSA也是默认的加密类型.所以你也可以只输入ssh-keygen.默认的RSA长度是2048位.如果你非常注重安全,那么可以指定4096位的长度.
ssh-keygen -b 4096 -t rsa
将SSH公钥上传到Linux服务器
可以使用**ssh-copy-id
**命令来完成.
ssh-copy-id username@server_ip_or_hostname
windows无法使用ssh-copy-id解决办法
在powershell中输入如下脚本:
function ssh-copy-id([string]$userAtMachine, $args){ $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub" if (!(Test-Path "$publicKey")){ Write-Error "ERROR: failed to open ID file '$publicKey': No such file" } else { & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" } }
然后就可以使用
ssh-copy-id
了。
评论区