Jak zmusić ssh do zalogowania się jako właściwy użytkownik?

8

Używam ssh na różnych maszynach, głównie Linux. Konta na tych komputerach różnią się schematem nazewnictwa: jeśli nazywam się First Last, to mam konta: najpierw, flast, last_f, lastf, a czasami muszę się zalogować jako root. Dla każdego komputera, którego używam, chciałbym, aby klient openssh wiedział, którego konta użyć, gdy nie podam go w wierszu poleceń.

Pytanie brzmi więc: jak sprawić, by ssh serverzrobić właściwą rzecz, gdy nazwa użytkownika nie jest określona?

bstpierre
źródło

Odpowiedzi:

18

Możesz utworzyć configplik w .sshkatalogu domowym , w którym można określić domyślnego użytkownika, plik tożsamości itp. I przypisać go do aliasu, którego można użyć do połączenia.

Na przykład możesz umieścić to w ~/.ssh/configpliku:

Host example
    HostName example.com
    User first_last
    IdentityFile ~/.ssh/example_rsa
    Port 22
    RSAAuthentication yes
    PubkeyAuthentication yes

Host example2
    HostName example2.com
    User last_first
    # other parameters as needed

Następnie możesz po prostu wpisać ssh examplelub ssh example2w wierszu polecenia, aby się połączyć.

Możesz więc skonfigurować jeden dla każdego komputera, z którym chcesz się połączyć, z odpowiednim użytkownikiem. Następnie wystarczy użyć aliasów, aby połączyć się bez konieczności określania użytkownika. Możesz także użyć wzorca, aby dopasować wiele hostów.

Więcej informacji i szczegółowe informacje na temat tego, co można określić w pliku konfiguracyjnym na stronie podręcznika ssh_config .

Rich Adams
źródło
3
Oczywiście, możesz podać tyle, ile chcesz w tym samym pliku .config. Mam ponad 20 bez żadnych problemów. Po prostu zostawiam spację między poszczególnymi hostami, co prawdopodobnie nie jest wymagane, ale czyni je bardziej czytelnymi.
Rich Adams,
1
Czy nie powinien to być configplik? Bez kropki na początku?
danadam
1
@rich próbował zachęcić Cię do pokazania innej witryny w twoim przykładzie; Mam nadzieję, że nie masz nic przeciwko, żebym to zrobił.
Quack quixote
4
Wcięcie wszystkiego oprócz wierszy zawierających „Host foo” znacznie pomaga w utrzymywaniu.
innaM
1
@CristianCiupitu: Biorąc pod uwagę pytanie o Linuksa, nie nazwałbym oficjalnej strony podręcznika OpenBSD. Istnieją opcje w ssh Linuksa (np. GSSAPIKeyExchange ), które nie są dostępne w wersji BSD.
Dennis
1

Zgodnie z odpowiedzią Richa Adama dowiedziałem się o PuTTY, gdzie przechowuje swoje ustawienia.

Wszystko jest przechowywane w drzewie rejestru, znajdziesz je pod HKEY_CURRENT_USER\Software\SimonTatham(Simon Tatham jest programistą PuTTY).
Tam możesz zobaczyć, jak zdefiniowany jest host.

guerda
źródło
1

Jeśli chcesz to zmienić dla KAŻDEJ witryny:

Edytuj swój, ~/.ssh/configaby mieć to:

Host *
    User buck
hopeseekr
źródło