SSH kullanırken adresleri kalıcı olarak saklayın


12

Terminal üzerinden bağlandığım birkaç uzak sunucum var. Sunucuların bir alanı yok, sadece birkaç tane aldığımda hatırlaması zor bir IP adresi var.

Aşağıdakileri yapabilmem için değerleri terminalde kalıcı olarak saklamanın bir yolu var mı?

server1 = 111.222.111.222

Ve aşağıdaki gibi komutları yazın:

ssh root@server1

onun yerine:

ssh root@111.222.111.222

Yanıtlar:


22

SSH bağlantıları için, bir kullanıcı yapılandırma dosyası oluşturabilir ~/.ssh/configve eşlemeleri buraya yerleştirebilirsiniz;

Host server1
  Hostname      111.222.111.222

Port(Standart olmayan bağlantı noktaları için) ve User(uzak sistemdeki kullanıcı adınız yerel sistemdekinden farklıysa yararlı ) gibi diğer alanları kolayca ekleyebilirsiniz . Tüm man ssh_configayrıntılar için bakınız.


14

Evet, dosyaya yazmanız yeterlidir /etc/hosts. Aşağıdaki sözdizimine sahiptir:

1.2.3.4 servername additional_servername

Nerede:

  • 1.2.3.4 IP adresi
  • servername ismi
  • additional_servername isteğe bağlı bir isim

Kaydettikten sonra sunucuya adıyla ulaşabilirsiniz.


@theusual Eğer cevap bu ise, lütfen kabul etmeyi düşünün (yukarı / aşağı oy düğmelerinin altındaki onay işareti).
jpmc26

8

Tabii ki özel sorununuz için @chaos ve @steeldriver önerilerini takip etmek istiyorsunuz, ancak genel durumda, "terminalde değerleri kalıcı olarak saklamak" için kabuk değişkenlerini araştırmak istiyorsunuz. Onları nasıl ayarlayacağınız kabuğunuza bağlı olacaktır (sanırım echo $SHELLilgili bilgileri sağlayacaktır).

"Kalıcı olarak" ile "bu terminal oturumundan çıkmadığım sürece" demek istiyorsan, o zaman sadece tabanlı bir kabuk ( doğru hatırlıyorsam tabanlı bir kabuk için) export server1=111.222.111.222kullanıyorsanız komutu kullanabilirsiniz . Sonra önüne işaret koyun Değişkeninizi erişebilirsiniz  : .bashsetenv server1 111.222.111.222csh/tcsh$ssh root@$server1

"Kalıcı olarak" ile "her yeni terminali başlattığımda" kastediyorsanız, değişkeninizi shell init dosyalarından birinde ayarlamanız gerekir. İçinde Ör $HOME/.bashrciçin bashtabanlı kabukları veya $HOME/.cshrcmuhtemelen bir önceki paragrafta mentionned aynı sözdizimi kullanılarak -. İnit dosyasını kaynaklamanız gerektiğini unutmayın (örneğin source $HOME/.bashrc, değişikliklerin dikkate alınması için yeni bir kabuk açmanız gerekir).

Not: Bellekten yanıt, bazı küçük ayarlamalar gerektirebilir.


2
Kalıcı olarak bilgisayarı yeniden başlatmış olsam bile bahsediyorum. Buna bir göz atacağım, biraz zaman alabilir.
theusual

Sonra ikinci yöntem uygulanır (shell init dosyaları).
Skippy le Grand Gourou

1

Soruya doğrudan bir cevap değil (kaos ve steeldriver, en iyi gerçek çözüm olacağını düşündüğüm şeyi zaten sağladı), ancak vakaların çoğunda tek bir adreste bir kullanıcıya yalnızca ssh gerekiyorsa, düzenlemeye bakın. .bash_aliasesEğer tüm terminali komut için bir takma ad oluşturabilir olarak ev dizininde dosya, yararlı olmalıdır.


0

Özel cevaplar çok iyi.

Genel olarak, bir kabukta bazı şeyleri tanımlamak / ayarlamak istiyorsanız, bunu yapmak için bir komut dosyası yazmanız ve daha sonra sourceveya .bu kurulumun etkin olmasını istediğinizde çalıştırmanız yeterlidir .

Her zaman istediğiniz bir şeyse, .profile (giriş kabukları için) veya tüm kabuklar için .bashrc'de (bash kullanıyorsanız) kaynak yapabilirsiniz.

Böyle bir yaklaşımla, önce başka birini çağırdıktan sonra birini çağırırsanız birbirlerine basmadıklarından emin olduğunuz sürece farklı çalışma ortamlarını ayarlamak için birden fazla komut dosyanız olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.