How to save a frequently used SSH host for access via terminal? [duplicate]
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
This question already has an answer here:
Host alias for ssh
2 answers
I have a host that I frequently ssh
into. But I don't want to enter it again and again. Should I use an environment variable for this or is there a better way?
I wouldn't mind a generalized solution on saving frequently used variables that exist outside of a single bash session.
command-line bash ssh environment-variables
marked as duplicate by Eric Carvalho, Pilot6, Charles Green, Volker Siegel, Thomas Feb 24 at 9:55
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
This question already has an answer here:
Host alias for ssh
2 answers
I have a host that I frequently ssh
into. But I don't want to enter it again and again. Should I use an environment variable for this or is there a better way?
I wouldn't mind a generalized solution on saving frequently used variables that exist outside of a single bash session.
command-line bash ssh environment-variables
marked as duplicate by Eric Carvalho, Pilot6, Charles Green, Volker Siegel, Thomas Feb 24 at 9:55
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
3
How about saving the params in~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…
– user000001
Feb 14 at 7:31
4
To expand on Roger's comment, URLs are those things that have the format of<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different.ssh ssh://user@server:22/
would be invalid.
– JoL
Feb 14 at 20:06
6
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22
add a comment |
This question already has an answer here:
Host alias for ssh
2 answers
I have a host that I frequently ssh
into. But I don't want to enter it again and again. Should I use an environment variable for this or is there a better way?
I wouldn't mind a generalized solution on saving frequently used variables that exist outside of a single bash session.
command-line bash ssh environment-variables
This question already has an answer here:
Host alias for ssh
2 answers
I have a host that I frequently ssh
into. But I don't want to enter it again and again. Should I use an environment variable for this or is there a better way?
I wouldn't mind a generalized solution on saving frequently used variables that exist outside of a single bash session.
This question already has an answer here:
Host alias for ssh
2 answers
command-line bash ssh environment-variables
command-line bash ssh environment-variables
edited Feb 18 at 9:08
Vaish MK
asked Feb 14 at 7:27
Vaish MKVaish MK
12826
12826
marked as duplicate by Eric Carvalho, Pilot6, Charles Green, Volker Siegel, Thomas Feb 24 at 9:55
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Eric Carvalho, Pilot6, Charles Green, Volker Siegel, Thomas Feb 24 at 9:55
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
3
How about saving the params in~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…
– user000001
Feb 14 at 7:31
4
To expand on Roger's comment, URLs are those things that have the format of<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different.ssh ssh://user@server:22/
would be invalid.
– JoL
Feb 14 at 20:06
6
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22
add a comment |
3
How about saving the params in~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…
– user000001
Feb 14 at 7:31
4
To expand on Roger's comment, URLs are those things that have the format of<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different.ssh ssh://user@server:22/
would be invalid.
– JoL
Feb 14 at 20:06
6
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22
3
3
How about saving the params in
~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…– user000001
Feb 14 at 7:31
How about saving the params in
~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…– user000001
Feb 14 at 7:31
4
4
To expand on Roger's comment, URLs are those things that have the format of
<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different. ssh ssh://user@server:22/
would be invalid.– JoL
Feb 14 at 20:06
To expand on Roger's comment, URLs are those things that have the format of
<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different. ssh ssh://user@server:22/
would be invalid.– JoL
Feb 14 at 20:06
6
6
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22
add a comment |
5 Answers
5
active
oldest
votes
Environment variables are for the purpose of communicating information to multiple commands/processes that you start in shell that commands or processes expect to be there in the environment. Usually such variables include options, such as LESS
variable passing frequently-used options to less
pager, PERL5LIB
for finding perl modules in non-standard locations, LC_LANG
to communicate which language a command should use for the output.
If the URL is for your own use with a specific command, use an alias such as alias au='firefox https://askubuntu.com
or a function such as open_url(){ firefox "$@" }
to open arbitrary URL that you provide on command-line as positional parameter to the function.
In certain cases such as ssh
, you can define connection properties in configuration files as explained in Lekensteyn's answer:
define
~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
use
ssh meh
to connect to the host using the config file.
2
I'd also useIdentitiesOnly yes
.
– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
add a comment |
Also I would suggest to create an alias.
Edit your .bashrc
(or maybe .profile
or similar file) in your home directory. Add several aliases like:
alias go='ssh url1'
alias go2='ssh url2'
Then, relogin/reconnect and enter go
or go2
.
add a comment |
I'd suggest combining Sergiy's and Lewis's answers for maximum laziness efficiency:
First create a host entry for ssh
:
define ~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Now ssh meh
works, but that could still be quite long. There is autocompletion (after ssh
[Blank]), but its still an awful lot to type.
So lets also define an alias
:
Edit your .bashrc
in your local home directory. Add an alias like:
alias meh='ssh meh'
Now you can connect to "meh.example.com" by simply typing meh
in your terminal window.
If instead of "meh" you want to use a longer string, you can actually use [Tab] key to autocomplete.
Or if you are really lazy, just define a single character as alias:
alias m='ssh meh'
So, if you type m and hit Enter/Return, your ssh connection will start immediately !
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole ofssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)
– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing aalias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce theIdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts inconfig
rather than in some bash alias.
– Jon Bentley
Feb 15 at 20:25
|
show 1 more comment
Yet another option is to use the history features of the shell. You can Ctrl-r in bash and type a unique substring of the last time you ssh'ed to that place. If there's no unique substring, you can just use whatever qualifies best as a rare substring and browse through the history entries by repeatedly pressing Ctr-r until you get to it. For example, you might type Ctrl-r and "monkeys" or "codemonkeys" or "odemon" or "kong" and get
ssh kong@codemonkeys.some-server.com
from the last, and hopefully only time you typed that whole.
With the history features of the shell, there's really no reason to type any long command more than once.
add a comment |
I usually just create a .sh
which contains a ssh command. For example:
# file name: mywebsite-live.sh
ssh username@123.123.123.123 # or whatever the domain is.
And then to run it I simply do ./mywebsite-live.sh
I realise that it's probably a pretty crappy solution but it works for me and the hope is that it might work for someone else too.
add a comment |
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
Environment variables are for the purpose of communicating information to multiple commands/processes that you start in shell that commands or processes expect to be there in the environment. Usually such variables include options, such as LESS
variable passing frequently-used options to less
pager, PERL5LIB
for finding perl modules in non-standard locations, LC_LANG
to communicate which language a command should use for the output.
If the URL is for your own use with a specific command, use an alias such as alias au='firefox https://askubuntu.com
or a function such as open_url(){ firefox "$@" }
to open arbitrary URL that you provide on command-line as positional parameter to the function.
In certain cases such as ssh
, you can define connection properties in configuration files as explained in Lekensteyn's answer:
define
~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
use
ssh meh
to connect to the host using the config file.
2
I'd also useIdentitiesOnly yes
.
– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
add a comment |
Environment variables are for the purpose of communicating information to multiple commands/processes that you start in shell that commands or processes expect to be there in the environment. Usually such variables include options, such as LESS
variable passing frequently-used options to less
pager, PERL5LIB
for finding perl modules in non-standard locations, LC_LANG
to communicate which language a command should use for the output.
If the URL is for your own use with a specific command, use an alias such as alias au='firefox https://askubuntu.com
or a function such as open_url(){ firefox "$@" }
to open arbitrary URL that you provide on command-line as positional parameter to the function.
In certain cases such as ssh
, you can define connection properties in configuration files as explained in Lekensteyn's answer:
define
~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
use
ssh meh
to connect to the host using the config file.
2
I'd also useIdentitiesOnly yes
.
– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
add a comment |
Environment variables are for the purpose of communicating information to multiple commands/processes that you start in shell that commands or processes expect to be there in the environment. Usually such variables include options, such as LESS
variable passing frequently-used options to less
pager, PERL5LIB
for finding perl modules in non-standard locations, LC_LANG
to communicate which language a command should use for the output.
If the URL is for your own use with a specific command, use an alias such as alias au='firefox https://askubuntu.com
or a function such as open_url(){ firefox "$@" }
to open arbitrary URL that you provide on command-line as positional parameter to the function.
In certain cases such as ssh
, you can define connection properties in configuration files as explained in Lekensteyn's answer:
define
~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
use
ssh meh
to connect to the host using the config file.
Environment variables are for the purpose of communicating information to multiple commands/processes that you start in shell that commands or processes expect to be there in the environment. Usually such variables include options, such as LESS
variable passing frequently-used options to less
pager, PERL5LIB
for finding perl modules in non-standard locations, LC_LANG
to communicate which language a command should use for the output.
If the URL is for your own use with a specific command, use an alias such as alias au='firefox https://askubuntu.com
or a function such as open_url(){ firefox "$@" }
to open arbitrary URL that you provide on command-line as positional parameter to the function.
In certain cases such as ssh
, you can define connection properties in configuration files as explained in Lekensteyn's answer:
define
~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
use
ssh meh
to connect to the host using the config file.
edited Feb 15 at 21:46
user459652
answered Feb 14 at 7:32
Sergiy KolodyazhnyySergiy Kolodyazhnyy
75.3k9155328
75.3k9155328
2
I'd also useIdentitiesOnly yes
.
– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
add a comment |
2
I'd also useIdentitiesOnly yes
.
– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
2
2
I'd also use
IdentitiesOnly yes
.– Giacomo Alzetta
Feb 14 at 10:59
I'd also use
IdentitiesOnly yes
.– Giacomo Alzetta
Feb 14 at 10:59
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
Also note that by default on Ubuntu, tab completion works with ssh hosts named in the config file.
– Roger Lipscombe
Feb 15 at 18:57
1
1
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
@Dubu I don't understand your comment. The answer clearly contains URLs. Are you saying it doesn't?
– Jon Bentley
Feb 15 at 19:04
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
I think the URL comment comes from referring to the connection properties in the config file as a "URL" which is not strictly accurate. I changed that wording.
– user459652
Feb 15 at 21:47
add a comment |
Also I would suggest to create an alias.
Edit your .bashrc
(or maybe .profile
or similar file) in your home directory. Add several aliases like:
alias go='ssh url1'
alias go2='ssh url2'
Then, relogin/reconnect and enter go
or go2
.
add a comment |
Also I would suggest to create an alias.
Edit your .bashrc
(or maybe .profile
or similar file) in your home directory. Add several aliases like:
alias go='ssh url1'
alias go2='ssh url2'
Then, relogin/reconnect and enter go
or go2
.
add a comment |
Also I would suggest to create an alias.
Edit your .bashrc
(or maybe .profile
or similar file) in your home directory. Add several aliases like:
alias go='ssh url1'
alias go2='ssh url2'
Then, relogin/reconnect and enter go
or go2
.
Also I would suggest to create an alias.
Edit your .bashrc
(or maybe .profile
or similar file) in your home directory. Add several aliases like:
alias go='ssh url1'
alias go2='ssh url2'
Then, relogin/reconnect and enter go
or go2
.
edited Feb 14 at 14:40
dessert
25.5k674108
25.5k674108
answered Feb 14 at 12:48
Lewis BLewis B
1392
1392
add a comment |
add a comment |
I'd suggest combining Sergiy's and Lewis's answers for maximum laziness efficiency:
First create a host entry for ssh
:
define ~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Now ssh meh
works, but that could still be quite long. There is autocompletion (after ssh
[Blank]), but its still an awful lot to type.
So lets also define an alias
:
Edit your .bashrc
in your local home directory. Add an alias like:
alias meh='ssh meh'
Now you can connect to "meh.example.com" by simply typing meh
in your terminal window.
If instead of "meh" you want to use a longer string, you can actually use [Tab] key to autocomplete.
Or if you are really lazy, just define a single character as alias:
alias m='ssh meh'
So, if you type m and hit Enter/Return, your ssh connection will start immediately !
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole ofssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)
– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing aalias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce theIdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts inconfig
rather than in some bash alias.
– Jon Bentley
Feb 15 at 20:25
|
show 1 more comment
I'd suggest combining Sergiy's and Lewis's answers for maximum laziness efficiency:
First create a host entry for ssh
:
define ~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Now ssh meh
works, but that could still be quite long. There is autocompletion (after ssh
[Blank]), but its still an awful lot to type.
So lets also define an alias
:
Edit your .bashrc
in your local home directory. Add an alias like:
alias meh='ssh meh'
Now you can connect to "meh.example.com" by simply typing meh
in your terminal window.
If instead of "meh" you want to use a longer string, you can actually use [Tab] key to autocomplete.
Or if you are really lazy, just define a single character as alias:
alias m='ssh meh'
So, if you type m and hit Enter/Return, your ssh connection will start immediately !
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole ofssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)
– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing aalias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce theIdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts inconfig
rather than in some bash alias.
– Jon Bentley
Feb 15 at 20:25
|
show 1 more comment
I'd suggest combining Sergiy's and Lewis's answers for maximum laziness efficiency:
First create a host entry for ssh
:
define ~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Now ssh meh
works, but that could still be quite long. There is autocompletion (after ssh
[Blank]), but its still an awful lot to type.
So lets also define an alias
:
Edit your .bashrc
in your local home directory. Add an alias like:
alias meh='ssh meh'
Now you can connect to "meh.example.com" by simply typing meh
in your terminal window.
If instead of "meh" you want to use a longer string, you can actually use [Tab] key to autocomplete.
Or if you are really lazy, just define a single character as alias:
alias m='ssh meh'
So, if you type m and hit Enter/Return, your ssh connection will start immediately !
I'd suggest combining Sergiy's and Lewis's answers for maximum laziness efficiency:
First create a host entry for ssh
:
define ~/.ssh/config
file with the following contents
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Now ssh meh
works, but that could still be quite long. There is autocompletion (after ssh
[Blank]), but its still an awful lot to type.
So lets also define an alias
:
Edit your .bashrc
in your local home directory. Add an alias like:
alias meh='ssh meh'
Now you can connect to "meh.example.com" by simply typing meh
in your terminal window.
If instead of "meh" you want to use a longer string, you can actually use [Tab] key to autocomplete.
Or if you are really lazy, just define a single character as alias:
alias m='ssh meh'
So, if you type m and hit Enter/Return, your ssh connection will start immediately !
edited Feb 15 at 14:44
answered Feb 15 at 8:23
Robert RiedlRobert Riedl
3,205927
3,205927
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole ofssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)
– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing aalias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce theIdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts inconfig
rather than in some bash alias.
– Jon Bentley
Feb 15 at 20:25
|
show 1 more comment
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole ofssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)
– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing aalias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce theIdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts inconfig
rather than in some bash alias.
– Jon Bentley
Feb 15 at 20:25
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
I think autocomplete for ssh-config 'just works' on ubuntu, and has worked as far as I can remember, the only place where I know it doesn't work out-of-the-box is MacOS
– Pelle
Feb 15 at 14:37
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole of
ssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)– Robert Riedl
Feb 15 at 14:42
@Pelle, yes that's true! I better rephrase that... But you have to type out the whole of
ssh
plus the blank and at least the first character.. which is so much work if you have to do it often.. and as sysadmin you should be lazy ;)– Robert Riedl
Feb 15 at 14:42
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
It's not clear from your answer what the benefit of combining the two approaches is, over just using the bash alias (of course I agree there is a benefit).
– Jon Bentley
Feb 15 at 20:05
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
@Jon Bentley, hm... I'll have a look tomorrow and see how I can make this clear.
– Robert Riedl
Feb 15 at 20:19
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing a
alias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce the IdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts in config
rather than in some bash alias.– Jon Bentley
Feb 15 at 20:25
Sure. And just to elaborate on my comment a little, I'm contrasting this approach with doing a
alias meh='ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa'
which would achieve the same thing. The benefit I am thinking of of using the config file is that you can enforce the IdentitiesOnly yes
option. Also that it feels more "correct" to store your SSH hosts in config
rather than in some bash alias.– Jon Bentley
Feb 15 at 20:25
|
show 1 more comment
Yet another option is to use the history features of the shell. You can Ctrl-r in bash and type a unique substring of the last time you ssh'ed to that place. If there's no unique substring, you can just use whatever qualifies best as a rare substring and browse through the history entries by repeatedly pressing Ctr-r until you get to it. For example, you might type Ctrl-r and "monkeys" or "codemonkeys" or "odemon" or "kong" and get
ssh kong@codemonkeys.some-server.com
from the last, and hopefully only time you typed that whole.
With the history features of the shell, there's really no reason to type any long command more than once.
add a comment |
Yet another option is to use the history features of the shell. You can Ctrl-r in bash and type a unique substring of the last time you ssh'ed to that place. If there's no unique substring, you can just use whatever qualifies best as a rare substring and browse through the history entries by repeatedly pressing Ctr-r until you get to it. For example, you might type Ctrl-r and "monkeys" or "codemonkeys" or "odemon" or "kong" and get
ssh kong@codemonkeys.some-server.com
from the last, and hopefully only time you typed that whole.
With the history features of the shell, there's really no reason to type any long command more than once.
add a comment |
Yet another option is to use the history features of the shell. You can Ctrl-r in bash and type a unique substring of the last time you ssh'ed to that place. If there's no unique substring, you can just use whatever qualifies best as a rare substring and browse through the history entries by repeatedly pressing Ctr-r until you get to it. For example, you might type Ctrl-r and "monkeys" or "codemonkeys" or "odemon" or "kong" and get
ssh kong@codemonkeys.some-server.com
from the last, and hopefully only time you typed that whole.
With the history features of the shell, there's really no reason to type any long command more than once.
Yet another option is to use the history features of the shell. You can Ctrl-r in bash and type a unique substring of the last time you ssh'ed to that place. If there's no unique substring, you can just use whatever qualifies best as a rare substring and browse through the history entries by repeatedly pressing Ctr-r until you get to it. For example, you might type Ctrl-r and "monkeys" or "codemonkeys" or "odemon" or "kong" and get
ssh kong@codemonkeys.some-server.com
from the last, and hopefully only time you typed that whole.
With the history features of the shell, there's really no reason to type any long command more than once.
edited Feb 14 at 18:02
answered Feb 14 at 17:54
JoLJoL
1,13437
1,13437
add a comment |
add a comment |
I usually just create a .sh
which contains a ssh command. For example:
# file name: mywebsite-live.sh
ssh username@123.123.123.123 # or whatever the domain is.
And then to run it I simply do ./mywebsite-live.sh
I realise that it's probably a pretty crappy solution but it works for me and the hope is that it might work for someone else too.
add a comment |
I usually just create a .sh
which contains a ssh command. For example:
# file name: mywebsite-live.sh
ssh username@123.123.123.123 # or whatever the domain is.
And then to run it I simply do ./mywebsite-live.sh
I realise that it's probably a pretty crappy solution but it works for me and the hope is that it might work for someone else too.
add a comment |
I usually just create a .sh
which contains a ssh command. For example:
# file name: mywebsite-live.sh
ssh username@123.123.123.123 # or whatever the domain is.
And then to run it I simply do ./mywebsite-live.sh
I realise that it's probably a pretty crappy solution but it works for me and the hope is that it might work for someone else too.
I usually just create a .sh
which contains a ssh command. For example:
# file name: mywebsite-live.sh
ssh username@123.123.123.123 # or whatever the domain is.
And then to run it I simply do ./mywebsite-live.sh
I realise that it's probably a pretty crappy solution but it works for me and the hope is that it might work for someone else too.
answered Feb 14 at 12:54
PrintlnParamsPrintlnParams
391
391
add a comment |
add a comment |
3
How about saving the params in
~/.ssh/config
? Some examples are here: nerderati.com/2011/03/17/…– user000001
Feb 14 at 7:31
4
To expand on Roger's comment, URLs are those things that have the format of
<protocol>://<host>:<port>/<path>
(simplified example). The syntax ssh uses to specify locations is different.ssh ssh://user@server:22/
would be invalid.– JoL
Feb 14 at 20:06
6
Possible duplicate of Host alias for ssh, and this and probably a few more.
– Sparhawk
Feb 16 at 6:22