Linux命令之 ssh命令
warning:
这篇文章距离上次修改已过1644天,其中的内容可能已经有所变动。
SSH是一种网络协议,用于计算机之间的加密登录。
info:注意:SSH只是一种协议(敲黑板~),存在多种实现,既有商业实现,也有开源实现。这里讨论仅针对OpenSSH,它是自由软件,应用非常广泛。
info:配合Linux SSH密钥登录,远程服务器操作就像在本机上一样
命令语法
ssh [参数] [user@]hostname [command]
附加参数
此处仅列举常用参数,详细可参阅ssh官方文档
参数 | 说明 |
---|---|
-4 | 强制ssh仅使用IPv4地址。 |
-6 | 强制ssh仅使用IPv6地址。 |
-A | 启用转发身份验证代理连接。这也可以在配置文件中基于每个主机指定。 |
-a | 禁用转发身份验证代理连接。 |
-l | 指定要在远程计算机上登录的用户。这也可以在配置文件中基于每个主机指定。 |
-p | 要连接到远程主机的端口。这可以在配置文件中基于每个主机指定。 |
-Q | 查询ssh指定版本支持的算法 可供选择的选项 cipher (支持的对称密码), cipher-auth (支持经过身份验证的加密支持的对称密码), help (支持与-Q标志一起使用的查询术语), mac (支持的消息完整性代码), kex (密钥交换算法), key (密钥类型), key-cert (证书密钥类型), key-plain (非证书密钥类型), protocol-version (支持的SSH协议版本), and sig (支持的签名算法). |
-q | 安静模式,屏蔽大多数警告和诊断消息 |
-E | 将调试日志附加到log_file而不是标准错误。 |
-V | 显示版本号并退出。 |
-x | 禁用X11转发。 |
-Y | 启用可信的X11转发。受信任的X11转发不受X11 SECURITY扩展控制的约束。 |
Error:应谨慎启用代理转发。 能够绕过远程主机上的文件权限(对于代理的
UNIX -domain
套接字)的用户可以通过转发的连接访问本地代理。攻击者无法从代理获取密钥材料,但是他们可以对密钥执行操作,使其能够使用加载到代理中的身份进行身份验证。常用范例:
info:【pi.idzd.top】是指向我树莓派ip的域名。
指定用户登录
ssh pi@pi.idzd.top
#或
ssh -l pi pi.idzd.top
不指定用户,默认使用当前账户登录
ssh pi.idzd.top
指定其他端口登录(PS:极路由就蛋疼的把端口改成1022了)
ssh -p 1022 root@192.168.199.1
执行远程命令(适合那种就看个返回结果的命令,尽量用绝对路径)
ssh pi@pi.idzd.top ls -l
执行某个脚本
ssh root@pi.idzd.top -t "sh /home/back.sh"
首次登陆免输yes登录
ssh root@pi.idzd.top -o stricthostkeychecking=no
查看转移字符(链接到远程主机后)
~?
X11 图形界面()
ssh -X pi@pi.idzd.top
如果你想在运行图形界面程序的同时做些别的事情, 只需要在命令末尾加一个 & 符号就可以了
挂载远程文件系统(传文件)
sshfs -o idmap=user pi@pi.idzd.top:/home/test ~/test