Ronan Blog

罗华东的博客 | 永远相信美好的事情即将发生

SSH 免密登录

2024-09-02 Linux Ronan

1创建密钥

在本地主机终端输入

ssh-keygen

之后一路回车,不出意外的话,你将看到以下内容

img

恭喜,你已经完成第一步!


2检查密钥是否创建成功

在终端输入

ls .ssh

看到以下内容

img

看到其中有id_ed25519(私钥))其中的ed25519在不同设备可能会有不同,有的可能是id_rsaid_ed25519.pub(公钥)两个文件,恭喜,你已经完成第二步了,离成功更近了!


3将公钥复制到远程主机

在终端键入

ssh-copy-id -i <~/.ssh/id_ed25519.pub> <username>@<remote_ip>

其中的<~/.ssh/id_ed25519.pub> 是公钥所处的路径,<username>是用户名,<remote_ip>是主机名或IP 地址。

这条命令会将公钥保存到远程主机的 ~/.ssh/authorized_keys 文件中。

恭喜你,现在可以不再每次登录都需要输入密码了!!!


4问题排查

有时候因为之前的服务器重装了系统,但是在本地主机仍然保存着之前的私钥,所以在重新登录远程服务器时会遇到以下问题

❯ ssh root@<your_remote_ip>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:voGkOAiSibnvAWCsXNasOzsmdMnc2ff7MHE2jsZRfSE.
Please contact your system administrator.
Add correct host key in /Users/iaa/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /Users/iaa/.ssh/known_hosts:28
Host key for aby.ronan.cloudns.ch has changed and you have requested strict checking.
Host key verification failed.

4.1解决方法

运行以下命令来删除旧的主机密钥

Continue reading

GCC使用及编译流程

2024-09-02 Linux Ronan

GCC 是 Linux 下的编译工具集,是 GNU Compiler Collection 的缩写,包含 gcc、g++ 等编译器。这个工具集不仅包含编译器,还包含其他工具集,例如 ar、nm 等。

GCC 工具集不仅能编译 C/C++语言,其他例如 Objective-C、Pascal、Fortran、Java、Ada 等语言均能进行编译。GCC 在可以根据不同的硬件平台进行编译,即能进行交叉编译,在 A 平台上编译 B 平台的程序,支持常见的 X86、ARM、PowerPC、mips 等,以及 Linux、Windows 等软件平台。

1. 安装 GCC

有些纯净版的Linux默认没有gcc编译器, 需要自己安装, 在线安装步骤如下:

# 安装软件必须要有管理员权限
# ubuntu
sudo apt update   		# 更新本地的软件下载列表, 得到最新的下载地址
sudo apt install gcc g++	# 通过下载列表中提供的地址下载安装包, 并安装

# centos
sudo yum update   		# 更新本地的软件下载列表, 得到最新的下载地址
sudo yum install gcc g++	# 通过下载列表中提供的地址下载安装包, 并安装

gcc安装完成后,可查看版本:

# 查看 gcc 版本
gcc -v
gcc --version

# 查看 g++ 版本
g++ -v
g++ --version

2.GCC工作流程

GCC 编译器对程序的编译下图所示,分为 4 个阶段:预处理(预编译)编译和优化汇编链接。GCC 的编译器可以将这 4 个步骤合并成一个。 先介绍一个每个步骤都分别做了写什么事:

Continue reading

Linux用户与用户组的创建、切换及删除

2024-09-02 Linux Ronan

1创建新用户

  1. 以root用户身份登录到Linux系统。
  2. 打开终端窗口。
  3. 运行以下命令来创建新用户(假设要创建的用户名为newuser):
sudo adduser <newuser>

1.1为新用户设置密码

sudo passwd <newuser>

1.2切换到新用户

su - <newuser>

2将用户添加到sudo组

2.1ubuntu

接下来,将新用户添加到sudo组,以便其拥有sudo权限。运行以下命令:(假设要添加的用户名为newuser)

sudo usermod -aG sudo <newuser>

2.2CentOS

在CentOS系统中,默认情况下,sudo 组并不存在。相反,CentOS使用的是 wheel 组来管理具有 sudo 权限的用户。你可以将用户添加到 wheel 组来解决这个问题。以下是解决步骤:

1.将用户添加到 wheel

sudo usermod -aG wheel <newuser>

2.验证用户是否已被添加到 wheel

groups iaa

3.配置 sudoers 文件(可选,通常默认配置已经包含了 wheel 组的 sudo 权限):

sudo visudo

确保以下行(%wheel这一行之前没有#符号)未被注释掉:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

如果是远程登录,完成以上步骤后,请断开ssh连接后重新登录。

Continue reading
Older posts Newer posts