Linux 基础知识(一)更新源及ssh配置

艺帆风顺 发布于 2025-04-03 17 次阅读


Linux 知识众多,发行版又广,为了避免每次着急时查资料的尴尬情况出现,特此将我平时可能用到的命令都记录下来,以方便后面使用。

更新

Ubuntu

# 备份更新源
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 20.04 清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list

# 19.04 清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ disco-proposed main restricted universe multiverse" >> /etc/apt/sources.list

# 18.04 阿里源
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list

# 18.04 清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list

# 16.04 清华源
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> /etc/apt/sources.list

# 14.04 阿里源
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list

Kali

# 备份更新源
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# 中科大源
echo "deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib" >> /etc/apt/sources.list
echo "deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib" >> /etc/apt/sources.list

# 浙大源
echo "deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
echo "deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list

# 东软大学
echo "deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib" >> /etc/apt/sources.list
echo "deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib" >> /etc/apt/sources.list

Debian

# 备份更新源
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# Debian 10 buster 网易源
echo "deb http://mirrors.163.com/debian/ buster main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ buster-updates main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian-security buster/updates main contrib non-free" >> /etc/apt/sources.list


# Debian 9 stretch 网易源
echo "deb http://mirrors.163.com/debian/ stretch main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ stretch-updates main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list

# Debian 8 jessie 网易源
echo "deb http://mirrors.163.com/debian/ jessie main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-updates main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-backports main contrib non-free" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list

CentOS

# 备份更新源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 阿里云的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 刷新源
yum update

# 生成缓存
yum makecache

这里我用的是 CentOS7 的更新源,其他源参考如下:

# CentOS 5 国内源替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

# CentOS 6 国内源替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

proxychains

安装

Ubuntu/Debian

apt install proxychains

CentOS

# 下载到指定目录
cd /usr/local/src
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng

# 安装GCC
yum install gcc

# 手动编译
./configure
make && make install
make install-config

配置

Kali/Ubuntu/Debian

vim /etc/proxychains.conf

CentOS

vim /usr/local/etc/proxychains.conf

测试

proxychains curl https://www.google.com

zsh

Ubuntu/Kali/Debian 安装

# 安装zsh
apt install zsh

# 更改默认shell为zsh
chsh -s /bin/zsh

# 安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 下载命令补全插件
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

# zshrc配置文件中修改如下内容
plugins=(git zsh-autosuggestions)

# 重新加载zsh配置
zsh

CentOS 安装

# 安装zsh
yum install zsh

除了安装使用 yum 以外,其他配置方法和上面其他发行版系统一样,这里就不再赘述了。

zsh 插件

CentOS7 安装 zsh 一些插件和 macOS 下安装相差不多,这里就简单提一下吧:

autojump

快捷目录跳转插件

yum install autojump autojump-zsh -y

在 ~/.zshrc 中配置

plugins=(其他的插件 autojump)

输入 zsh 命令生效配置后即可正常使用 j 命令,下面是简单的演示效果:

# root @ centos in ~/test/23333 [18:45:14]
$ pwd
/root/test/23333

# root @ centos in ~/test/23333 [18:45:16]
$ cd ~


# root @ centos in ~ [18:45:17] 直接 j 2 就跳转到历史目录了
$ j 2
/root/test/23333

# root @ centos in ~/test/23333 [18:45:20]
$ pwd
/root/test/23333

zsh-syntax-highlighting

命令输入正确会绿色高亮显示,可以有效地检测命令语法是否正确

cd ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

在 ~/.zshrc 中配置

plugins=(其他的插件 zsh-syntax-highlighting)

输入 zsh 命令生效配置

autosuggestions

终端下自动提示接下来可能要输入的命令,这个实际使用效率还是比较高的

cd ~/.oh-my-zsh/custom/plugins
git clone https://github.com/zsh-users/zsh-autosuggestions.git

在 ~/.zshrc 中配置

plugins=(其他的插件 zsh-autosuggestions)

输入 zsh 命令生效配置

SSH

安装 SSH

Ubuntu

# 直接安装报错
apt install openssh-server

居然报错了,内容如下:

下列软件包有未满足的依赖关系:
openssh-server : 依赖: openssh-client (= 1:7.6p1-4)
依赖: openssh-sftp-server 但是它将不会被安装
推荐: ssh-import-id 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

手动解决依赖,这里是因为 openssh-server 是依赖于 openssh-clien 的,那我们手动安装下指定的版本的 openssh-client

# 手动解决依赖
apt install openssh-client=1:7.6p1-4

# 重新安装openssh-server
apt install openssh-server

CentOS

# 安装SSH
yum install openssh-server

Kali/Debian

apt install openssh-server

SSH 自启

# 开机自动启动ssh命令
sudo systemctl enable ssh

# 关闭ssh开机自动启动命令
sudo systemctl disable ssh

允许 root 远程登陆

Ubuntu

# 允许root远程登陆
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

# SSH开机自启
systemctl enable ssh

# 开启SSH
/etc/init.d/ssh start

ssh 连接非 22 端口

ssh -p 端口 x.x.x.x

ssh 使用公私钥登陆

 # 生成公私钥
ssh-keygen

# 到ssh公私钥放的文件夹
cd /root/.ssh/

# 将公钥的内容拷贝到authorized_keys文件中
cat id_rsa.pub >> authorized_keys

# 关闭密码登陆
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config

# 重启ssh
/etc/init.d/ssh restart

效果如下:

将服务器的 rsa 私钥下载下来,然后拷贝到自己的机器上。此时必须使用私钥匙登陆才可以成功:

# 将拷贝下来的私钥设置600权限
chmod 600 ~/Downloads/test_rsa

# 使用私钥登陆
ssh -i ~/Downloads/test_rsa root@10.211.55.9

一台电脑保存多 SSH KEY

假设有这样一个场景

服务器 IP私钥位置
1.1.1.1~/.ssh/id_rsa_a
2.2.2.2~/.ssh/id_rsa_b

想要自己的电脑保存这两台服务器的私钥的话,可以这样配置:

在 ~/.ssh 目录下创建 config 文件:

vim ~/.ssh/config

输入以下信息:

Host 1.1.1.1
IdentityFile ~/.ssh/id_rsa_a

Host 2.2.2.2
IdentityFile ~/.ssh/id_rsa_b

然后设置私钥的权限:

chmod 600 ~/.ssh/id_rsa_a
chmod 600 ~/.ssh/id_rsa_b

SSH 取消公私钥登陆

# 清空.ssh文件夹
rm -rf /root/.ssh/*

# 允许密码登陆
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config

# 重启SSH服务
/etc/init.d/ssh restart

# CentOS 服务器这样重启
systemctl restart sshd

SCP 拷贝文件

scp 本地文件 用户名@服务器地址:要拷贝的路径

SCP 拷贝非 22 端口文件

scp -P端口 本地文件 用户名@服务器地址:要拷贝的路径
版权声明:本文内容始发于个人博客>作者 : 国光,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。始发链接:https://www.sqlsec.com/2019/10/linux.html#在此特别鸣谢:个人博主>国光的创作。本文已获原作者国光授权发布在本公众号;原作者已在本公众号关联运营账号(安全小姿势),故在此声明本文原创为国光(安全小姿势)。此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处。