首页 > 系统相关 >密钥对登陆linux

密钥对登陆linux

时间:2024-04-04 11:02:50浏览次数:33  
标签:公钥 keys authorized 登陆 linux 服务器 id ssh 密钥

1. 生成密钥对

使用ssh-keygen命令生成密钥对:

ssh-keygen -t rsa

这将会生成一个私钥(默认名为id_rsa)和一个公钥(默认名为id_rsa.pub)。

2. 复制公钥到服务器

有多种方法可以将公钥复制到服务器上,以下是两种常见的方法:

方法一:使用ssh-copy-id命令

如果你的本地机器上安装了ssh-copy-id工具,你可以使用它来自动将公钥复制到远程服务器上:

ssh-copy-id username@remote_server_ip

username替换为你的服务器用户名,remote_server_ip替换为你的服务器IP地址或主机名。执行此命令时,系统会提示你输入username的密码。输入正确的密码后,ssh-copy-id会自动将你的公钥追加到远程服务器上的~/.ssh/authorized_keys文件中。

方法二:手动复制公钥

如果ssh-copy-id不可用,你可以手动复制公钥内容并将其追加到服务器的~/.ssh/authorized_keys文件中:

  1. 打开本地机器上生成的公钥文件(通常是~/.ssh/id_rsa.pub)。
  2. 复制公钥文件中的所有内容。
  3. 使用SSH登录到远程服务器:
    ssh username@remote_server_ip
    
  4. 在服务器上,确保~/.ssh目录存在并具有正确的权限(通常为700)。如果不存在,可以使用以下命令创建并设置权限:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    
  5. 将公钥内容追加到~/.ssh/authorized_keys文件中。如果文件不存在,你需要先创建它:
    echo "你的公钥内容" >> ~/.ssh/authorized_keys
    
    或者,如果你已经复制了公钥内容并保存在剪贴板中,你可以直接使用pbcopy(在macOS上)或xclip(在某些Linux发行版上)来粘贴内容:
    pbcopy < ~/.ssh/id_rsa.pub | ssh username@remote_server_ip 'cat >> ~/.ssh/authorized_keys'
    
    或者对于使用xclip的系统:
    xclip -o | ssh username@remote_server_ip 'cat >> ~/.ssh/authorized_keys'
    
  6. 设置~/.ssh/authorized_keys文件的权限为600,以确保只有所有者可以读写该文件:
    chmod 600 ~/.ssh/authorized_keys
    

3. 测试连接

完成上述步骤后,你可以尝试使用SSH密钥对连接到服务器:

ssh -i ~/.ssh/id_rsa username@remote_server_ip

如果一切正常,你将无需输入密码即可登录到服务器。如果出现问题,请检查服务器上的SSH日志(通常位于/var/log/auth.log/var/log/secure),以获取有关连接尝试的详细信息。

记得妥善保管你的私钥,不要将其分享给任何人。私钥的安全性对于SSH密钥认证至关重要。

标签:公钥,keys,authorized,登陆,linux,服务器,id,ssh,密钥
From: https://blog.csdn.net/kk_flying/article/details/137357107

相关文章

  • Autodesk Maya 2025 Multilanguage (macOS, Linux, Windows) - 三维动画和视觉特效软
    AutodeskMaya2025Multilanguage(macOS,Linux,Windows)-三维动画和视觉特效软件三维计算机动画、建模、仿真和渲染软件请访问原文链接:https://sysin.org/blog/autodesk-maya/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org三维计算机动画、建模、仿真和渲染......
  • Linux进程创建和管理
    在Linux中,进程创建和管理的相关函数主要是fork()、exec()、wait()和exit() 举个例子:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/wait.h>intmain(){pid_tpid;//创建子进程pid=fork();if(pid<0){......
  • Linux 配置DNS服务
    DNS简介域名解析:就是域名到IP地址的转换过程。(也可以将IP地址转换为相应的域名地址,叫做反向解析)⼈们通过注册的域名可以⽅便地访问到⽹站。IP地址是⽹络上标识站点的数字地址,为了⽅便记忆,采⽤域名来代替IP地址标识站点地址。域名的解析⼯作由DNS服务器完成。DNS⼯作原理......
  • Linux入门
    一,什么是LinuxLinux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年首次发布,之后引起了广泛关注。它是由全世界的自由软件开发者共同参与的类UNIX兼容系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行......
  • Linux C编程一站式学习 part3: Linux系统编程
    LinuxC编程一站式学习(akaedu.github.io)28.文件与I/O29.文件系统30.进程31.Shell脚本32.正则表达式33.信号34.终端、作业控制与守护进程35.线程36.TCP/IP协议基础37.socket编程......
  • Linux启动报错:clean ... file ... blocks 或 recovering journal
    先说原因:根目录内存满了如何解决:首先进入命令行界面:按照网上的操作方法主要是这种:Ctrl+Alt+F4我不是这种方式进入的,我的是:Alt+F4进入之后会让你输入账号密码,但是我只有四秒钟时间输入(不知道怎么会有这种逆天设置),很难一次搞定,极其麻烦。而且可能出现密码太长输不完的情......
  • java八股——linux常见命令
    上一篇传送门:点我说说你知道的linux命令?1.ls:列出目录内容。示例:ls-l(以长格式显示目录内容,可以缩写成ll),ls-a(显示包括隐藏文件在内的所有文件)。2.cd:改变当前工作目录。示例:cd/home/user(切换到/home/user目录),cd…(切换到上一级目录)。3.pwd:显示当前工作目录的路径。4......
  • 实用 Linux 命令 Windos 命令 实例演示 持续更新中
    实用Linux命令Windos命令实例演示持续更新中目录实用Linux命令Windos命令实例演示持续更新中Linux命令【Command[options][local]命令参数路径】命令对照WindowsLinuxLinux命令【Command[options][local]命令参数路径】**对于命令参数记忆......
  • linux小技巧(一)--文件比较
    文章目录linux小技巧(一)--文件比较1.diff基本输出解释基本示例diff常见符号常见的diff选项linux小技巧(一)–文件比较1.diffdiff命令是一种在Unix、Linux和类Unix系统中广泛使用的命令行工具,用于比较两个文件的内容差异。基本输出解释当diff命令比较两个文......
  • 【Linux】在生产环境中,Linux系统排查常用命令
    问题排查文章目录问题排查top命令CPU:vmstatprocscpu内存:free硬盘:df硬盘IO:iostat网络IO:ifstat生产环境服务器变慢,诊断思路和性能评估top命令查看整机系统新能使用top命令的话,重点关注的是%CPU、%MEM、loadaverage三个指标在这个命令下,按1的话,可以看到每个C......