Extend or inherit existing entries in .ssh/config
up vote
0
down vote
favorite
I have the following entry in my .ssh/config file:
Host myhost
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Very simple, it allows me to access myhost
from outside its NATed network, by bouncing off external-relay
.
Most of the times I only want to SSH to myhost
, without creating any SSH tunnels, but some other times I want to create various tunnels, for different purposes.
Nowadays I simply manually append the -L
tunnel entries when I ssh to myhost
but it's becoming increasingly difficult to remember which sets of ports I need for which purpose.
I could just add those custom port forwarding commands as aliases, but what I'd really like is to have separate named entries in my .ssh/config
file that basically create the connection to myhost
and add the required tunnels, but I don't want to duplicate the whole myhost
config everytime, because if/when I change the external-relay
, I don't want to have to remember to change it in every entry that used it.
Is there a way to create an entry that inherits fom the myhost
entry, and simply appends the required LocalForward
directives for that particular tunnel case?
ssh ssh-tunnel
add a comment |
up vote
0
down vote
favorite
I have the following entry in my .ssh/config file:
Host myhost
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Very simple, it allows me to access myhost
from outside its NATed network, by bouncing off external-relay
.
Most of the times I only want to SSH to myhost
, without creating any SSH tunnels, but some other times I want to create various tunnels, for different purposes.
Nowadays I simply manually append the -L
tunnel entries when I ssh to myhost
but it's becoming increasingly difficult to remember which sets of ports I need for which purpose.
I could just add those custom port forwarding commands as aliases, but what I'd really like is to have separate named entries in my .ssh/config
file that basically create the connection to myhost
and add the required tunnels, but I don't want to duplicate the whole myhost
config everytime, because if/when I change the external-relay
, I don't want to have to remember to change it in every entry that used it.
Is there a way to create an entry that inherits fom the myhost
entry, and simply appends the required LocalForward
directives for that particular tunnel case?
ssh ssh-tunnel
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following entry in my .ssh/config file:
Host myhost
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Very simple, it allows me to access myhost
from outside its NATed network, by bouncing off external-relay
.
Most of the times I only want to SSH to myhost
, without creating any SSH tunnels, but some other times I want to create various tunnels, for different purposes.
Nowadays I simply manually append the -L
tunnel entries when I ssh to myhost
but it's becoming increasingly difficult to remember which sets of ports I need for which purpose.
I could just add those custom port forwarding commands as aliases, but what I'd really like is to have separate named entries in my .ssh/config
file that basically create the connection to myhost
and add the required tunnels, but I don't want to duplicate the whole myhost
config everytime, because if/when I change the external-relay
, I don't want to have to remember to change it in every entry that used it.
Is there a way to create an entry that inherits fom the myhost
entry, and simply appends the required LocalForward
directives for that particular tunnel case?
ssh ssh-tunnel
I have the following entry in my .ssh/config file:
Host myhost
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Very simple, it allows me to access myhost
from outside its NATed network, by bouncing off external-relay
.
Most of the times I only want to SSH to myhost
, without creating any SSH tunnels, but some other times I want to create various tunnels, for different purposes.
Nowadays I simply manually append the -L
tunnel entries when I ssh to myhost
but it's becoming increasingly difficult to remember which sets of ports I need for which purpose.
I could just add those custom port forwarding commands as aliases, but what I'd really like is to have separate named entries in my .ssh/config
file that basically create the connection to myhost
and add the required tunnels, but I don't want to duplicate the whole myhost
config everytime, because if/when I change the external-relay
, I don't want to have to remember to change it in every entry that used it.
Is there a way to create an entry that inherits fom the myhost
entry, and simply appends the required LocalForward
directives for that particular tunnel case?
ssh ssh-tunnel
ssh ssh-tunnel
asked Nov 23 at 17:04
ktorn
1032
1032
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You should be able to do:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
followed by:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
and myhost-2
will derive settings from myhost-*
(but CANNOT override them).
You definitely should have a look at the beginning of DESCRIPTION section (to see how options are applied to connection) and PATTERNS section of ssh_config man page.
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You should be able to do:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
followed by:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
and myhost-2
will derive settings from myhost-*
(but CANNOT override them).
You definitely should have a look at the beginning of DESCRIPTION section (to see how options are applied to connection) and PATTERNS section of ssh_config man page.
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
add a comment |
up vote
1
down vote
accepted
You should be able to do:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
followed by:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
and myhost-2
will derive settings from myhost-*
(but CANNOT override them).
You definitely should have a look at the beginning of DESCRIPTION section (to see how options are applied to connection) and PATTERNS section of ssh_config man page.
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You should be able to do:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
followed by:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
and myhost-2
will derive settings from myhost-*
(but CANNOT override them).
You definitely should have a look at the beginning of DESCRIPTION section (to see how options are applied to connection) and PATTERNS section of ssh_config man page.
You should be able to do:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
followed by:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
and myhost-2
will derive settings from myhost-*
(but CANNOT override them).
You definitely should have a look at the beginning of DESCRIPTION section (to see how options are applied to connection) and PATTERNS section of ssh_config man page.
answered Nov 23 at 17:57
Tomek
1564
1564
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
add a comment |
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
This works. I actually knew about the patterns and already used a wildcard for global options, but hadn't occurred to me to re-use the same host prefix to achieve what I wanted here. Thanks!
– ktorn
Nov 24 at 14:48
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1377856%2fextend-or-inherit-existing-entries-in-ssh-config%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown