ubuntu:ssh:agent_forwarding
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
ubuntu:ssh:agent_forwarding [2025/05/21 09:52] – created peter | ubuntu:ssh:agent_forwarding [2025/05/21 10:11] (current) – peter | ||
---|---|---|---|
Line 4: | Line 4: | ||
* It works by forwarding requests from the SSH client on the server back to your local machine’s SSH agent. | * It works by forwarding requests from the SSH client on the server back to your local machine’s SSH agent. | ||
+ | |||
+ | SSH agent forwarding is built into ssh, and the ssh-agent process is launched automatically. | ||
+ | |||
+ | * Just make sure the keys are added to ssh-agent and configure ssh to use forwarding. | ||
+ | |||
---- | ---- | ||
- | ===== Enable | + | ===== Manually enable |
To enable SSH agent forwarding, use the **-A** option with the **ssh** command when connecting to your remote server. | To enable SSH agent forwarding, use the **-A** option with the **ssh** command when connecting to your remote server. | ||
- | | + | <code bash> |
+ | ssh -A user@host | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | **NOTE: | ||
+ | |||
+ | * Agent forwarding can be configure permanently in the **~/ | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Add Keys to ssh-agent ===== | ||
+ | |||
+ | Use the utility **ssh-add** to add keys to the local agent. | ||
+ | |||
+ | Assuming the private key is stored in **id_rsa**, run: | ||
+ | |||
+ | <code bash> | ||
+ | ssh-add ~/ | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | **NOTE: | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Check that the key is added properly ===== | ||
+ | |||
+ | <code bash> | ||
+ | ssh-add -L | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | **NOTE: | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Allow Forwarding in the Clients Config ===== | ||
+ | |||
+ | Edit the **~/ | ||
+ | |||
+ | Set a new rule to make sure agent forwarding is enabled for the domain of this server. | ||
+ | |||
+ | <file bash ~/ | ||
+ | Host < | ||
+ | ForwardAgent yes | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | **NOTE:** Replace **< | ||
+ | |||
+ | * The wildcard ***** can be used for the host, but then this will be forwarding access of the private keys to every server being connected to, which is probably not what you want. | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP important> | ||
+ | **WARNING: | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Troubleshooting ===== | ||
+ | |||
+ | If SSH Forwarding is not working, | ||
+ | |||
+ | * Make sure you actually have SSH keys in the first place; if you do not, run **ssh-keygen**, | ||
+ | * Verify that the SSH keys are working properly with regular auth, and add them to ssh-agent. Keys can be added with **ssh-add**. | ||
+ | * The ssh-agent process also needs to be running. It should start automatically, | ||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | * If it is correctly set up, this should display a Listeners socket returned. | ||
+ | * Make sure the config files are set up properly to include **ForwardAgent yes**, and make sure no other config files are overwriting this behaviour. | ||
+ | * To check which config files SSH is using, run ssh in verbose mode, Which should display which config files are being used. Files displayed later in this list take precedence over earlier files: <code bash> | ||
+ | ssh -v user@host</ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | TAGS | ||
+ | |||
+ | * TAG: Networking | ||
+ | * TAG: Security | ||
+ | * TAG: SSH | ||
---- | ---- | ||
ubuntu/ssh/agent_forwarding.1747821137.txt.gz · Last modified: 2025/05/21 09:52 by peter