免密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 [email protected]

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

相关推荐
SKYDROID云卓小助手30 分钟前
三轴云台之相机技术篇
运维·服务器·网络·数码相机·音视频
东方佑31 分钟前
自动调整PPT文本框内容:防止溢出并智能截断文本
linux·运维·powerpoint
泥土编程2 小时前
kubekey -实现懒人一键部署K8S集群
linux·运维
wirepuller_king5 小时前
创建Linux虚拟环境并远程连接,finalshell自定义壁纸
linux·运维·服务器
Yan-英杰6 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
在野靡生.6 小时前
Ansible(1)—— Ansible 概述
linux·运维·ansible
风123456789~6 小时前
【Linux运维】查询指定日期的上月
linux·运维·服务器
zyk_5206 小时前
Docker desktop如何汉化
运维·docker·容器
韭菜盖饭6 小时前
解决Docker端口映射后外网无法访问的问题
运维·docker·容器
CC.cc.7 小时前
Linux系统之systemctl管理服务及编译安装配置文件安装实现systemctl管理服务
linux·运维·服务器