声明:
本文的学习内容来源于B站up主“泷羽sec”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。
本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,合理合法使用相关知识。
一、openssl
openssl
是一个开源的加密工具包,提供了加密、解密、签名和验证等功能。
其中,passwd
用于处理密码的加密操作。
示例 1:
openssl passwd -1 123
该命令中的 -1
参数表示使用 MD5 加密算法对密码 “123” 进行加密。
MD5 是一种常见的哈希算法,可以将任意长度的输入数据转化为固定的 128 位输出。使用这个命令会将 “123” 转换为 MD5 加密的密文。
示例 2:
openssl passwd -5 123
在该命令中,-5
参数指定使用 SHA-256 哈希算法对密码 “123” 进行加密。
SHA-256 是一种更为安全的哈希算法,生成的哈希值长度为 256 位。每次对相同的密码进行 SHA-256 加密时,由于会引入随机因素(如盐值),每次生成的密文都不同。这种随机性增强了密码的安全性,使得即使攻击者获取到密文,也很难反推出原始密码。
二、文件管理
1. touch:创建文件
- 创建空文件
touch newfile
2. rm:删除文件
- 删除文件
rm newfile
3. mkdir:创建目录
- 新建目录
mkdir newdir
4. rmdir:删除空目录
- 删除空目录
rmdir newdir
5. mv:重命名文件
- 重命名文件
mv file.txt new.txt
6. mv:移动文件
- 移动文件到新目录
mv newfile newdir2
7. cp:拷贝文件
- 复制文件
cp file.txt newdir/newfile.txt
8. ln -s:创建软链接
- 创建指向原文件的软链接
ln -s original.txt symlink.txt
9. ln:创建硬链接
- 创建指向原文件的硬链接
ln ~/offsec123.txt hardlink.txt
10. 软链接和硬链接
软链接(Symbolic Link)
软链接,又称符号链接,是指向原文件路径的链接,类似于快捷方式。软链接文件本身只是一个指针,指向目标文件的位置。删除原文件后,软链接会失效,成为“断开的链接”。软链接可以对文件和目录创建,因此在需要引用目录或文件位置的情况下非常有用。
硬链接(Hard Link)
硬链接是指向原文件数据块的另一个文件名,两个文件共享相同的存储数据块。删除其中一个硬链接并不会影响数据的存在,文件内容依然可以通过其他硬链接访问。硬链接只能对文件创建,不支持对目录创建。只有当删除所有指向同一数据块的硬链接之后,文件数据才会真正被删除。
软链接和硬链接的区别
- 指向对象:软链接指向文件路径,而硬链接直接指向文件数据。
- 存储关系:软链接是一个独立的文件,占用少量存储空间;硬链接共享数据块,不增加存储空间。
- 跨文件系统:软链接可以跨不同文件系统使用,硬链接则只能在相同的文件系统内使用。
- 删除影响:删除原文件后,软链接失效,而硬链接仍可访问文件内容。只有删除所有硬链接后,文件数据才会被删除。
- 对目录的支持:软链接可以对文件和目录创建,硬链接仅支持文件。
用途
- 软链接:常用于创建文件和目录的快捷方式,尤其是需要跨目录或跨文件系统引用资源时。适合引用动态内容(如版本控制中不同版本的文件)。
- 硬链接:适用于在同一文件系统内需要创建文件副本的场景,且希望文件副本之间保持一致性。硬链接的多个文件名指向同一内容,避免冗余存储,也防止误删文件。
综合之前的总结和新内容,进一步润色如下:
三、搜索文件
1. which:查找可执行文件
- 查找系统命令的可执行文件路径,通常用于确定某个命令所在的具体位置。
which <command>
例如,查看 ls
命令的路径:
which ls
kali
中ls
设置成了ls --color=auto
的别名
ubuntu中可以正常显示
2. echo:查看 PATH 环境变量
- 输出当前系统的 PATH 环境变量内容,用于查看系统查找可执行文件的路径。
echo $PATH
3. locate:快速查找文件
- 使用本地数据库
local.db
快速查找文件,适用于不需要实时数据的情况下进行文件查找。使用前通常需要更新数据库。
locate <filename>
例如,更新数据库并查找 whoami.exe
文件:
sudo updatedb
locate whoami.exe
4. find:在文件系统中查找文件
基本语法
find <路径> <查找条件> <操作>
<路径>
:指定查找的起始目录,默认是当前目录(用.
表示)。<查找条件>
:定义查找文件的条件,如文件名、类型、大小、时间等。<操作>
:对查找到的文件执行的操作,如删除、移动、执行脚本等。
常用查找条件
- 按文件名查找
- 查找文件名为
example.txt
的文件。
find /path/to/search -name "example.txt"
- 查找文件名为
- 忽略大小写查找文件名为
example.txt
的文件。
find /path/to/search -iname "example.txt"
-
按文件类型查找
- 查找普通文件(
-type f
)、目录(-type d
)、符号链接(-type l
)、设备文件等。
find /path/to/search -type f
其他类型包括:b
:块设备文件c
:字符设备文件s
:套接字文件p
:管道文件
- 查找普通文件(
-
按时间查找
- 按修改时间:
- 查找在过去 2 天内修改过的文件。
find /path/to/search -mtime -2
- 查找恰好在 2 天前修改过的文件。
find /path/to/search -mtime 2
- 按访问时间:
- 查找在过去 30 分钟内访问过的文件。
find /path/to/search -amin -30
- 按创建时间(某些系统可能不支持):
- 查找在过去 1 小时内创建的文件。
find /path/to/search -ctime -1
- 按修改时间:
-
按文件大小查找
- 查找大于 10 MB 的文件。
find /path/to/search -size +10M
- 查找小于 100 KB 的文件。
find /path/to/search -size -100k
常见的单位:k
:KBM
:MBG
:GB
-
按权限查找
- 查找权限为
777
的文件。
find /path/to/search -perm 777
- 查找所有用户可写的文件(权限为
o=w
)。
find /path/to/search -perm -o=w
- 查找权限为
-
按用户和组查找
- 查找所有者为
root
的文件。
find /path/to/search -user root
- 查找所属组为
admin
的文件。
find /path/to/search -group admin
- 查找所有者为
常用操作
-
打印输出
- 默认情况下,
find
会直接输出找到的文件路径。
- 默认情况下,
-
执行其他命令
- 使用
-exec
参数对查找到的文件执行其他命令。 - 删除查找到的文件。
find /path/to/search -name "*.tmp" -exec rm {} \;
- 其中
{}
表示找到的每个文件的路径,\;
用于表示命令结束。
- 批量移动文件到指定目录。
find /path/to/search -name "*.jpg" -exec mv {} /path/to/destination \;
- 使用
-
删除符合条件的文件
- 查找并删除
.log
文件。
find /path/to/search -name "*.log" -delete
- 查找并删除
-
查找并输出错误到 /dev/null
- 查找时忽略错误信息输出。
find /path/to/search -name "*.conf" 2>/dev/null
复杂操作
-
按文件的修改时间查找文件并排序输出:
find . -mtime -2 -ls | sort -k9 -k10 | more
find .
:从当前目录开始查找。-mtime -2
:查找在两天内修改的文件。-ls
:详细列出查找到的文件信息。sort -k9 -k10
:按照文件名和时间进行排序。
-
查找最近 30 分钟内修改的
.sh
文件:find . -type f -iname '*.sh' -mmin -30 -ls
-type f
:指定查找对象为普通文件。-iname '*.sh'
:忽略大小写,查找以.sh
结尾的文件。-mmin -30
:查找在 30 分钟内修改的文件。
-
查找并删除指定文件,例如
.svn
文件:find . -name '*.svn' -exec rm -rf {} \;
-exec
:对查找到的每个文件执行指定操作。rm -rf
:递归删除文件或目录。
-
查找权限为
其他用户可写
的文件并忽略错误信息:find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
-user root
:查找所有者为root
的文件。-type f
:限定为文件。-perm -o=w
:查找其他用户可写的文件。2>/dev/null
:忽略错误信息的输出。
说明
- which:适用于定位已安装命令的执行路径。
- echo $PATH:输出 PATH 环境变量内容,便于查看系统查找可执行文件的路径。
- locate:基于数据库的快速文件查找工具,适用于一般的文件查找需求,不提供实时结果。
- find:适合实时、精确的文件和目录查找,支持丰富的查找条件(如时间、权限、所有者等),适用于需要精确控制的查找任务。
四、用户和组账号管理
1. 用户账号数据库相关文件
- /etc/passwd:
这是一个重要的系统文件,存储了系统中用户账号的基本信息。
每行代表一个用户,包含了用户名、密码占位符、用户 ID、用户组 ID、用户描述信息、用户主目录、用户默认 shell 等字段。
- /etc/shadow:
该文件也与用户账号相关,主要存储用户密码的加密信息以及密码的属性(如密码最后一次修改时间、密码最短使用期限、密码最长使用期限等)。
只有具有足够权限的用户(通常是 root)才可以读取该文件,以提高密码的安全性。
2. 组账号相关命令
- 使用
cat /etc/group
可以查看用户账号所属组的信息,因为其中包含了用户组 ID。
cat /etc/group
3. 添加用户
-
方法 1:使用
useradd
命令useradd
是一个低级命令,创建用户后通常需要手动设置密码。sudo useradd -m newuser
-m
:创建用户的同时为其生成主目录(通常位于/home/newuser
)。newuser
:新用户的用户名。
设置新用户的密码:
sudo passwd newuser
执行此命令后,系统会提示输入新用户的密码。
-
方法 2:使用
adduser
命令adduser
是一个更高级的命令,通常会交互式地设置用户的主目录、密码和其他信息。sudo adduser newuser
- 系统会提示输入新用户的密码、用户信息(如全名、房间号等),这些可以直接按回车跳过。
adduser
命令会自动创建用户的主目录,并为新用户设置基本的环境配置。
4. 验证用户是否创建成功
可以使用 id
命令来查看新用户的详细信息:
id newuser
这会显示新用户的 UID、GID 以及所属组的信息。
5. 为新用户添加管理员权限
如果希望新用户具有管理员权限,可以将其添加到 sudo
组:
sudo usermod -aG sudo newuser
这样,新用户在使用 sudo
时可以获得管理员权限。
6. 禁用账号相关命令
- sudo passwd -l username
使用passwd
命令禁用指定的用户账号,-l
参数表示锁定用户账号。此命令将指定的username
用户锁定,使其无法登录系统。sudo passwd -l username
- chage -E 1990-01-01 kali
使用chage
命令用于设置用户密码的过期时间。在这个示例中,将kali
用户的过期时间设置为1990-01-01
,意味着在此日期之后该账号将无法使用,除非重新设置过期时间或进行其他管理操作。chage -E 1990-01-01 kali
- passwd -S username
passwd
命令的另一种用法,用于显示指定用户账号的密码状态。
-S
参数会显示该用户名的账号锁定状态,包括账号是否已锁定、密码是否已设置、密码最后一次修改时间等。passwd -S username
五、Linux 文件权限和管理
在Linux系统中,几乎所有的资源都被抽象为文件,包括硬件设备(如硬盘、网卡等)、进程间通信、网络连接等。这种设计理念使得对各种资源的管理可以通过同意的文件操作方式来进行,大大简化了系统的架构和管理。
权限介绍
在 Linux 系统中,每个文件和目录的权限分为三种类型:用户(user)、组(group) 和 其他用户(other)。每种类型下的权限有三种操作:读(read)、写(write) 和 执行(execute)。这些权限组合决定了文件和目录的访问控制。
1. 权限的基础结构
在文件权限中,每个文件的权限以类似于 -rwxr-xr--
的格式显示,其中每个字符代表一种权限或类型:
- 文件类型:第一个字符表示文件类型。
-
表示普通文件。d
表示目录。l
表示符号链接。b
表示块设备文件。c
表示字符设备文件。
- 权限:后面的 9 位表示权限,每 3 位一组,分别对应用户、组和其他用户的权限。
2. 权限的三种类型
每种权限使用一个字符表示:
- r(read):读权限。允许查看文件内容,或列出目录内容。
- w(write):写权限。允许修改文件内容,或在目录中创建、删除文件。
- x(execute):执行权限。允许执行文件(如果是可执行文件),或进入目录。
3. 权限的分组
- 用户(user):文件的所有者,对应权限的前三位(如
rwx------
)。 - 组(group):与文件所有者同组的用户,对应权限的中间三位(如
---r-x---
)。 - 其他用户(other):系统中其他所有用户,对应权限的最后三位(如
------r--
)。
4. 示例分析
假设权限为 -rwxr-xr--
,各部分含义如下:
-
:表示文件类型(-
表示普通文件)。rwx
:文件所有者(user)的权限,具有读、写、执行权限。r-x
:文件所属组(group)的权限,具有读、执行权限,但没有写权限。r--
:其他用户(other)的权限,只有读权限。
5. 权限的数值表示
权限还可以用数值来表示,每种权限有一个对应的数字:
- 读(r) =
4
- 写(w) =
2
- 执行(x) =
1
每 3 位权限组合的数值就是这三个权限的和。例如:
rwx
= 4 + 2 + 1 =7
rw-
= 4 + 2 + 0 =6
r--
= 4 + 0 + 0 =4
因此,权限 -rwxr-xr--
可以表示为 754
。
6. 数字表示法示例
假设我们要设置文件权限为 755
,表示:
- 用户(user):
7
(rwx)——拥有读、写、执行权限。 - 组(group):
5
(r-x)——拥有读、执行权限。 - 其他用户(other):
5
(r-x)——拥有读、执行权限。
命令如下:
chmod 755 filename
7. 常用权限数值组合
777
:所有人都有读、写、执行权限(rwxrwxrwx
),完全开放。755
:用户有全部权限,组和其他用户只有读和执行权限(rwxr-xr-x
),常用于公开的可执行文件。700
:只有用户有全部权限,组和其他用户无权限(rwx------
),用于私密文件。644
:用户有读写权限,组和其他用户只有读权限(rw-r--r--
),常用于公开的文档文件。
8. 文件与目录权限的差异
-
文件:
r
:允许读取文件内容。w
:允许修改文件内容。x
:允许执行文件(仅对脚本或可执行文件有意义)。
-
目录:
r
:允许查看目录中的文件名列表。w
:允许在目录中添加、删除文件或子目录。x
:允许进入目录,即使用cd
进入该目录。
权限相关指令
1. 查看文件权限
使用 ls -la
命令查看文件权限和属性:
ls -la /etc/passwd
-l
:以长格式显示文件属性,包括权限、所有者、所属组、大小和修改时间。-a
:显示包括隐藏文件在内的所有文件。/etc/passwd
是存储系统用户账号基本信息的文件,使用ls -la
命令可以查看它的权限、所有者和所属组信息。
2. 更改文件所有者
使用 chown
命令更改文件的所有者:
chown root: file
chown
:更改文件所有者的命令。root
:将文件所有者设置为root
用户。file
:指定要更改所有者的文件名。
3. 修改文件权限
使用 chmod
命令来修改文件权限:
-
使用符号模式更改权限:
sudo chmod u=rwx,g=rw,o=r file
u=rwx
:给文件所有者(user)授予读(r)、写(w)、执行(x)权限。g=rw
:给文件所属组(group)授予读(r)、写(w)权限。o=r
:给其他用户(other)授予读(r)权限。
-
增加权限:
sudo chmod u+x,g+x,o+w file
u+x
:给文件所有者(user)增加执行(x)权限。g+x
:给文件所属组(group)增加执行(x)权限。o
:给其他用户(other)增加写(w)权限。
-
去除权限:
sudo chmod u-x,g-rwx,o-rwx file
u-x
:给文件所有者(user)去除执行(x)权限。g-rwx
:给文件所属组(group)去除读(r)、写(w)、执行(x)权限。o-rwx
:给其他用户(other)去除读(r)、写(w)、执行(x)权限。
授予、增加、去除权限操作都可以杂糅进行,也可以一次只对一种分组进行操作
-
使用数字模式设置权限:
chmod 400 file
400
:表示文件所有者有读权限(4),而文件所属组和其他用户没有权限(0)。
-
递归授权:
chmod -R <权限> <目录>
- 在 Linux 中,可以使用
chmod
命令的-R
参数来递归更改文件夹及其内部所有文件和子文件夹的权限。 -R
:表示递归处理,将指定目录下的所有文件和子目录都设置为相同的权限。
六、日志查看与管理命令总结
1. 系统日志查看命令
ls -l /var/log
:列出日志目录中的内容,显示每个文件的详细信息。该命令包含以下详细输出:- 权限:显示文件的读、写、执行权限。
- 所有者和所属组:标识文件的创建者和分配的用户组。
- 文件大小:以字节为单位显示文件大小。
- 最后修改时间:显示文件的最后修改日期和时间。
/var/log
目录通常包含系统日志文件,例如系统启动日志、内核日志、安全日志等。这条命令适合用来快速了解日志目录下有哪些文件和它们的基础信息。
2. 认证信息日志查看命令
sudo tail -3 /var/log/auth.log
:使用管理员权限查看认证日志文件的最新3条记录。tail -3
命令用于读取文件的最后3行,便于快速查看最近的日志内容。/var/log/auth.log
文件记录系统的认证信息,包括用户登录成功、失败及权限提升等信息。该日志文件对监控系统的安全性至关重要。
- 这条命令可以帮助管理员检查系统最近的登录记录和认证失败情况,确保只有合法用户能够访问系统。
kali中没有auth.log
文件,使用Ubuntu演示
3. 二进制日志日志查看命令
who /var/log/wtmp | tail -5
:显示最近5条用户登录和注销的日志。who
命令读取指定的日志文件,在这里是/var/log/wtmp
,它是一个二进制文件,记录所有用户的登录、注销事件。|
是管道符,将前一个命令的输出作为后一个命令的输入。tail -5
显示该文件中的最后5行记录,也即最近5次登录或注销信息。
- 管理员可以使用此命令监控系统用户的活动情况,包括查看最近的登录和注销记录,以识别异常登录行为。
4. 内核日志查看命令
dmesg
:显示内核环形缓冲区中的信息,包含系统启动时的硬件检测信息和内核模块加载情况,适用于了解系统的硬件和内核状态。
- 查看内核加载的所有模块信息:
dmesg | grep "module"
- 查看硬件设备的加载日志(例如网络设备):
dmesg | grep "eth0"
- 检查系统启动过程中是否有硬件错误:
dmesg --level=err,warn
- 查看系统启动的时间戳:
dmesg -T
5. systemd日志查看命令
journalctl
:查询systemd日志,可根据时间段、服务、优先级等筛选日志信息。适用于查看系统和服务的启动、运行、错误日志。
- 查看系统最近启动后的日志:
journalctl -b
- 查看SSH服务的相关日志:
journalctl -u sshd
- 查看2024年11月1日至11月7日的日志:
journalctl --since "2024-11-01" --until "2024-11-07"
- 查看警告及以上级别的日志信息:
journalctl -p warning
- 实时跟踪日志更新(适合实时监控服务):
journalctl -f
七、系统资源管理命令
1. 内存使用量
free -m
free
命令用于显示系统内存的使用情况。
-m
选项将输出以 MB 为单位。执行后会显示系统的总内存、已使用内存、可用内存、缓冲内存和缓存内存等信息,帮助用户了解系统当前的内存状态。
2. 磁盘使用量
df -hT
df
命令用于显示磁盘空间使用情况。
-h
选项将输出以易读格式(如 KB、MB、GB)显示磁盘空间大小。执行后可以查看磁盘的总大小、已用空间、可用空间以及文件系统类型等信息。-T
选项系那是文件系统类型。- 执行这个命令可以查看各个磁盘分区的总大小、已使用空间、可用空间以及文件系统类型等信息。
3. 文件或目录大小
sudo du ./* -hsc
du
命令用于统计文件或目录的磁盘使用空间。
./*
表示当前目录下的所有文件和目录。-h
选项将输出以易读格式显示文件或目录大小。-s
选项显示目录的总大小。-c
选项在最后显示总计大小。执行此命令可查看当前目录下每个文件和目录的大小,并显示总大小。
4. 查看硬盘分区
sudo fdisk -l
fdisk
是一个磁盘分区管理工具,用于显示磁盘分区信息。
-l
选项显示系统中所有磁盘分区的详细信息,包括磁盘的大小、分区类型、分区编号、起始和结束扇区等,帮助用户了解系统的硬盘分区情况。
5. 挂载分区
sudo mount /dev/sdb1 /mnt/usb
mount
命令用于将设备挂载到指定的目录。
- 执行此命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样。
/dev/sdb1
表示要挂载的设备,/mnt/usb
是挂载目标目录。
八、网络管理工具
1. 基本网络工具
- ifconfig
用于配置和显示网络接口的命令行工具。可以显示网络接口的 IP 地址、子网掩码、MAC 地址等信息,并可用于启动、停止或配置网络接口。ifconfig
- ip addr
ip
命令是查看和管理网络接口的现代工具,提供比ifconfig
更详细和灵活的网络接口信息显示,包括接口状态、IP 地址、子网掩码、广播地址等。ip addr
![Pasted image 20241107222351](/i/ll/?i=img_convert/b566f835d7bdb7813f0ea837d2cb7fc6.png)
- **sudo ifdown eth0**
以管理员权限执行,关闭指定的网络接口 `eth0`。
```shell
sudo ifdown eth0
```
- **sudo ifup eth0**
以管理员权限执行,启动指定的网络接口 `eth0`。
```shell
sudo ifup eth0
```
## 2. 网络配置
- **/etc/network/interfaces**
一个系统文件,用于配置网络接口的静态 IP 地址、子网掩码、网关等信息。在一些 Linux 发行版中,通过编辑此文件可以实现网络接口的手动配置。
![Pasted image 20241107222526](/i/ll/?i=img_convert/0524762c8fc1e04b605d462268fd1eaf.png)
- **NetworkManager**
动态网络控制和配置守护进程,支持有线网络、无线网络和 VPN 连接等。
NetworkManager 提供了图形界面和命令行工具,用于简化网络配置,使网络管理更灵活,能够自动检测网络变化并根据配置自动连接到可用的网络。
## 3. 网络连接状态查看工具
- **netstat -natup**
`netstat` 是用于显示网络连接、路由表、接口统计等信息的命令。
- `-n`:以数字形式显示地址和端口,避免进行域名解析。
- `-a`:显示所有的连接和监听端口。
- `-t`:显示 TCP 连接。
- `-u`:显示 UDP 连接。
- `-p`:显示相关的进程名称。
```shell
netstat -natup
```
![Pasted image 20241107222734](/i/ll/?i=img_convert/5c618ddbf785f4e040a0a832c68f9e84.png)
- **ss -natup**
`ss` 是显示网络套接字状态的工具,速度更快,功能类似 `netstat`,用于显示 TCP 和 UDP 连接的状态、地址和端口信息。
```shell
ss -natup
```
![Pasted image 20241107222749](/i/ll/?i=img_convert/9a9a4493c07565a2392328f397b4c22f.png)
## 4. 二层地址查看工具
**arp -en**
`arp` 命令用于查看系统的 ARP 缓存表,显示 IP 地址与对应 MAC 地址的映射关系,用于在局域网中进行二层地址解析。
- `-e`:详细格式显示 ARP 缓存表。
- `-n`:以数字格式显示 IP 地址,避免域名解析。
```shell
arp -en
5. 路由信息相关工具
- route
route
命令用于显示和管理系统的路由表。可以查看当前路由信息,包括目标网络、网关、子网掩码等,还可以用于添加、删除或修改路由表条目。route
- ip route
ip
命令的路由子命令,用于管理路由表,提供更复杂的路由配置。- 添加路由示例:指定
10.13.37.0/24
网络通过接口eth1
到达。
sudo ip route add 10.13.37.0/24 dev eth1
- 添加路由示例:指定
6. 路由跟踪工具
traceroute
traceroute
用于跟踪数据包从本地主机到目标主机所经过的路由路径。执行此命令会逐跳显示数据包经过的路由器的 IP 地址和响应时间,帮助用户了解网络连接的路径和可能存在的网络问题。
traceroute <目标地址>
示例:
traceroute offensive-security.com
九、SSH 服务与配置
1. 启动 SSH 服务
sudo systemctl start ssh
systemctl
是用于管理系统服务的工具,start ssh
启动 SSH 服务,使其他设备能够通过 SSH 协议连接到该主机。
2. 连接本地主机
ssh root@localhost
ssh
是用于通过 SSH 协议登录远程主机的客户端命令。root@localhost
表示以root
用户身份登录本地主机。如果 SSH 服务已启动且配置正确,并且用户拥有相应的权限,可以通过此命令登录并获得一个远程命令行会话。
3. 配置文件
/etc/ssh/sshd_config
这是 SSH 服务器的主要配置文件,包含 SSH 服务的各种参数配置,如监听端口号、允许的登录用户、认证方式、访问控制等。
可以通过编辑此文件来定制 SSH 服务器的行为,满足特定的安全和访问需求。
4. 客户端配置
-
hash knownHosts yes
- SSH 客户端配置文件(通常为
~/.ssh/config
)中的一个配置选项。 - 该选项用于控制是否将已知主机文件(
~/.ssh/known_hosts
)中的主机名和 IP 地址以哈希格式存储。启用后,主机名和 IP 地址会被哈希处理,增加安全性,防止已知主机信息被直接读取。 - 默认情况下,SSH 客户端会将已知主机的密钥信息存储在
~/.ssh/known_hosts
文件中,以确保连接的安全性。
示例配置:
在~/.ssh/config
文件中添加以下内容:
Host * HashKnownHosts yes
- Host *:表示对所有主机生效。
- HashKnownHosts yes:启用哈希存储。
- SSH 客户端配置文件(通常为
-
~/.ssh/
该目录用于存储 SSH 客户端的配置信息和相关文件,如用户的私钥(如id_rsa
)、公钥文件(如id_rsa.pub
)以及已知主机文件(known_hosts
)。这些文件帮助 SSH 客户端进行身份验证和连接管理。
十、远程拷贝
scp 命令
scp
是 Secure Copy
的缩写,用于在不同主机之间安全地复制文件。
scp [email protected]:/home/kali/.bashrc Copiedbashrc
scp
命令格式为scp [源文件路径] [目标路径]
。- 上述命令将远程主机
1.1.1.1
的/home/kali/.bashrc
文件拷贝到本地,并命名为Copiedbashrc
。 [email protected]
表示登录到1.1.1.1
主机的root
用户身份。
十一、命令历史记录查看
history
history
命令会列出用户在当前会话或历史记录中的命令列表,通过查看命令历史,用户可以找到并重新执行先前的命令。