ssh免密登录
1、本地操作比如PC端1、本地客户端生成公私钥一班的人执行下面命令后一路回车默认即可二班的话可以自己问问AI -..jpg-t: 指定密钥算法-C: 密钥备注用于说明该密钥的用途-f: 密钥存放的位置和名称我这里示例的是id_ssh_ubuntu24最后的密钥名称是可以自定义的# 新服务器用ed5519 ssh-keygen -t ed25519 -C 内网Ubuntu服务器 -f $env:USERPROFILE\.ssh\id_ssh_ubuntu24 # 旧服务器用4096 ssh-keygen -t rsa -b 4096 -C 内网Ubuntu服务器 -f $env:USERPROFILE\.ssh\id_ssh_ubuntu242、上面这个命令会在用户目录.ssh文件夹下创建公私钥在windows的powershell中执行下面命令cd ~/.sshlsls后显示出下面两个密钥id_ssh_ubuntu24私钥id_ssh_ubuntu24.pub (公钥)2.上传公钥到服务器1、这里测试用的服务器地址为192.168.1.100假设服务器用户为root在powershell中执行下面命令可以自动将密钥上传到服务器中-i表示指定密钥路径-p服务器的端口号ssh-copy-id -i $env:USERPROFILE\.ssh\id_ssh_ubuntu24.pub root192.168.223.120 -p 22012、上面这条命令是写到服务器上的ssh目录下去了cd ~/.ssh vim authorized_keys可以看到客户端写入到服务器的 id_ssh_ubuntu24.pub 公钥内容。3、如果ssh-copy-id不能使用则解决方案是在powershell中先执行以下内容(复制下面内容粘贴到powershell中然后回车重点因为有些同学会自定义密钥名称所以下面命令的dierhan的id_ssh_ubuntu24.pub一定要是你之前生成的密钥名称。function ssh-copy-id([string]$userAtMachine, $args){ $publicKey $ENV:USERPROFILE /.ssh/id_ssh_ubuntu24.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 } }4、以vscode为例上述生成的密钥由于名称不是默认的因此要指定使用的密钥。需要在~/.ssh/config中填写Host root HostName 192.168.1.100 User root Port 2201 IdentityFile ~/.ssh/id_ssh_ubuntu24 IdentitiesOnly yes