C++类型转换机制详解
2026/5/22 20:51:32
这是 SSH 最基础、最常用的功能。
ssh [选项] [用户]@[主机名或IP]ssh username@server_ip。yes。# 登录到 IP 为 192.168.1.100 的服务器,用户名为 alice ssh alice@192.168.1.100 # 使用特定端口(例如 2222)登录 ssh -p 2222 alice@192.168.1.100* **成功后**:你的终端提示符会变化,表示你现在发出的所有命令都在远程服务器上执行。ssh [用户]@[主机] “[命令]”ssh连接语句的后面。# 查看远程服务器的当前时间和登录用户 ssh alice@192.168.1.100 "date && who" # 重启远程服务器上的 web 服务 ssh alice@192.168.1.100 "sudo systemctl restart nginx" # 将远程文件的内容输出到本地屏幕 ssh alice@192.168.1.100 "cat /etc/os-release"sftp [用户]@[主机]sftp user@host建立连接。sftp>)。put [本地文件]:上传文件到服务器。get [远程文件]:从服务器下载文件。ls:列出服务器上的文件。lls:列出本地当前目录的文件。cd [远程路径]:切换服务器上的目录。lcd [本地路径]:切换本地的当前目录。exit或bye退出。# 连接SFTP服务 sftp alice@192.168.1.100 # (进入sftp交互界面后) sftp> lcd /home/localuser/Documents # 切换到本地Documents目录 sftp> cd /tmp # 切换到服务器/tmp目录 sftp> put report.pdf # 上传本地report.pdf文件到服务器/tmp sftp> get server_log.txt # 下载服务器的server_log.txt到本地当前目录 sftp> bye # 退出`-L)ssh -L [本地IP:][本地端口]:[目标主机]:[目标端口] [用户]@[SSH服务器]localhost:[本地端口]。本地应用 -> localhost:本地端口 -> SSH加密隧道 -> SSH服务器 -> 目标主机:目标端口db.internal.com的 MySQL 数据库(端口3306),但该数据库不对外开放。你有一台可以访问的跳板机gateway.company.com。# 在本地终端执行: ssh -L 3307:db.internal.com:3306 alice@gateway.company.com # 现在,在你本地的机器上 # 你可以用MySQL客户端连接 localhost:3307 # 这个连接实际上被安全地转发到了内部的 db.internal.com:3306 mysql -u dbuser -p -h 127.0.0.1 -P 3307-R)ssh -R [远程IP:][远程端口]:[本地目标主机]:[本地目标端口] [用户]@[SSH服务器]SSH服务器IP:远程端口。外部用户 -> SSH服务器:远程端口 -> SSH加密隧道 -> 本地计算机:本地目标端口localhost)上开发了一个 Web 应用,运行在 3000 端口。你没有公网 IP,但有一台云服务器public.com。你想让朋友预览你的网站。# 在你的本地电脑上执行: ssh -R 8080:localhost:3000 alice@public.com# 现在,你的朋友(或你自己)在浏览器访问 # http://public.com:8080 # 这个请求就会被转发到你本地电脑的 3000 端口-A)ssh-agent管理的密钥,通过一条 SSH 连接(跳板机),去认证下一台服务器。你的私钥永远不会离开你的本地电脑,提高了安全性。ssh -A [用户]@[跳板机]ssh-agent(ssh-add ~/.ssh/id_rsa)。-A选项登录跳板机。ssh到其他内部服务器,而无需在跳板机上存储你的私钥。# 在本地电脑上启动agent并添加密钥 eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa # 输入你的密钥密码 # 使用代理转发连接到跳板机 ssh -A alice@jump-server.company.com # 现在,在 jump-server 的终端里,你可以直接连接内网其他服务器 # 跳板机会向你的本地agent请求签名来完成认证 ssh db-admin@internal-db-server