免密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这里主机,就能直接连上。

相关推荐
公众号:fuwuqiBMC28 分钟前
(转自“服务器BMC”)服务器BMC芯片——多Die(芯片)封装
运维·服务器·人工智能
jsons141 分钟前
autofs挂载
linux·服务器·网络
霸道流氓气质2 小时前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
D2aZXN3FhrDa7e2123 小时前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
无足鸟ICT3 小时前
【RHCA+】查看变量
linux·运维·服务器
Kina_C3 小时前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
EasyGBS3 小时前
ONVIF设备接入国标GB28181视频平台EasyGBS:不用国标也能一键拉流!
服务器·php·音视频
suaizai_3 小时前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
小小代码狗4 小时前
SQLi-Labs 基础注入实战教程(Less-1 ~ Less-5and Less-9)
服务器·python·php
慕伏白4 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器