免密ssh和自定义服务器名字【远程连接服务器】

免密ssh和自定义服务器名字【远程连接服务器】

免密ssh和自定义服务器名字【远程连接服务器】

:
实现免密登录需要 本地的公钥id_rsa.pub放在服务器上的 authorized_keys 文件中

复制代码
服务器中的位置一般在\~/.ssh.authorized_keys。若不存在,创建一个即可。   
`注意 authorized_keys 文件的权限必须是600,如果权限不对会影响登录。`
python 复制代码
touch authorized_keys
chmod 600 authorized_keys

本地生成公钥和私钥

python 复制代码
ssh-keygen -t rsa

参数-t rsa表示使用rsa算法进行加密,执行后,会在当前用户/.ssh目录下找到id_rsa(私钥)id_rsa.pub(公钥)

正常情况下可以跳过上面的两个步骤。

服务器添加本地公钥ssh-copy-id

本地公钥一般在Home目录下面,按Ctrl + H显示以.开头的文件

python 复制代码
ssh-copy-id -i id_rsa.pub 服务器用户名@服务器ip地址
例如
ssh-copy-id -i ~/.ssh/id_rsa.pub kkang@222.219.189.123

-i 指定本地的公钥文件地址

会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中

在Windows下面执行ssh-copy-id会出现以下bug:

powershell 复制代码
ssh-copy-id : 无法将"ssh-copy-id"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,
请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ ssh-copy-id
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (ssh-copy-id:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

解决方案是先在powershell中,执行以下内容:

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"      
    }
}

在Windows系统下,可能出现:

复制代码
'ssh-copy-id' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

方法1:可以下载一个git然后点击Open Git Bash here,执行上述命令。https://git-scm.com/download/win

方法 2:使用 WSL(Windows Subsystem for Linux)

直接执行上述命令即可

方法 3:手动复制、

  1. 打开公钥文件:notepad $env:USERPROFILE\.ssh\id_rsa.pub
  2. 复制公钥内容。
  3. 登录到远程服务器:ssh username@remote_host
  4. 在远程服务器上创建 .ssh 目录(如果不存在的话):mkdir -p ~/.ssh
  5. 将公钥内容粘贴到 authorized_keys 文件:将公钥内容粘贴到 authorized_keys 文件:

使用别名登录config

在本地的.ssh目录下创建一个config文件,写入配置:

python 复制代码
# Host 自定义连接服务器名称
Host 别名
# HostName 连接服务器IP
HostName xx.xx.xx.xx
# Port 服务器 ssh 对外开放的端口
Port 22
# 登录服务器的用户
User root
# 本地服务器密钥文件地址
IdentityFile ~/.ssh/id_rsa

一般情况下写下面这三个就ok,如下:

其中Host是别名

python 复制代码
Host 3080
    HostName 221.201.184.123
    User kk

Host 4090
    HostName 221.201.184.134
    User kk

到时候只需ssh 4090,即221.201.184.134这里主机,就能直接连上。

相关推荐
wydxry4 分钟前
在断网情况下,网线直接连接 Windows 笔记本和 Ubuntu 服务器进行数据传输
运维·docker·容器
智象科技7 分钟前
智象科技赋能金融、证券行业 IT 运维
大数据·运维·网络·数据库·科技·金融·智能运维
King's King20 分钟前
自动化立体仓库设计PPT
运维·自动化
Learn-Share_HY33 分钟前
[Linux]如何設置靜態IP位址?
linux·运维·tcp/ip·ubuntu·static ip
Everbrilliant891 小时前
Ubuntu系统下交叉编译Android的X265库
linux·运维·ubuntu·x265交叉编译·android x265·ffmpeg x265
我不要放纵1 小时前
LVS集群搭建
linux·服务器·lvs
阿巴~阿巴~2 小时前
自主Shell命令行解释器
linux·运维·服务器
小周学学学2 小时前
docker安装与简单项目上手
运维·docker·容器
SHUIPING_YANG2 小时前
根据用户id自动切换表查询
java·服务器·数据库
chao_7892 小时前
更灵活方便的初始化、清除方法——fixture【pytest】
服务器·自动化测试·python·pytest