Cấu hình SSH: ghi đè tên người dùng mặc định


271

Có thể cấu hình sshđể biết tên người dùng của tôi nên là gì?

Theo mặc định, nó sử dụng tên người dùng hiện tại, không đúng trong trường hợp của tôi.

Tôi đang sử dụng máy tính xách tay cho mượn và tên người dùng của tôi là loaner, nhưng tôi muốn nói sshrằng tên người dùng của tôi là buck.

Điểm thưởng: tên người dùng của tôi ở nhà là bgolemon. Nếu tôi có thể cấu hình tên người dùng trên mỗi máy chủ thì sẽ tốt hơn nữa.


3
Stack Overflow là một trang web cho các câu hỏi lập trình và phát triển. Câu hỏi này dường như lạc đề vì nó không liên quan đến lập trình hay phát triển. Xem những chủ đề nào tôi có thể hỏi về đây trong Trung tâm trợ giúp. Có lẽ Super User hoặc Unix & Linux Stack Exchange sẽ là một nơi tốt hơn để hỏi. Ngoài ra, xem tôi gửi câu hỏi về Dev Ops ở đâu?
jww

3
Đây là một câu hỏi hay!
Nicolas S.Xu

Câu trả lời được chấp nhận ở đây là chất lượng tốt hơn so với những người superuser: bao gồm toàn cầu (mặc định) khách hàng sử dụng chỉ thị và ý kiến bổ sung làm ưu tiên chỉ thị rõ ràng
Rondo

Câu trả lời:


449

Tạo một tập tin gọi là configbên trong ~/.ssh. Trong tập tin bạn có thể thêm:

Host *
    User buck

Hoặc thêm

Host example
    HostName example.net
    User buck

Ví dụ thứ hai sẽ đặt tên người dùng và là tên máy chủ cụ thể, trong khi ví dụ đầu tiên chỉ đặt tên người dùng. Và khi bạn sử dụng cái thứ hai bạn không cần sử dụng ssh example.net; ssh examplesẽ có đủ.


134
Có lẽ đáng để chỉ ra rằng theo man ssh_config: Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the file, and general defaults at the end.Vì vậy, Host *phần có lẽ nên đi vào cuối.
quodlibetor

9
Điều đáng chú ý là tệp cấu hình sẽ được xử lý theo kiểu từ trên xuống dưới, điền vào từng trường (Người dùng, Tên máy chủ ...) và bỏ qua các trường lặp lại nếu nhiều lệnh của Máy chủ được khớp. Nếu bạn xác định Host *, User jdoeở phía trên, và sau đó xác định Host example, HostName abc.example.com, User root, cố gắng ssh examplesẽ được giống như nếu bạn nhập ssh jdoe@abc.example.com. Để xác định mặc định ssh (ví dụ. User root), Lệnh Host *cần phải ở dưới cùng của tệp cấu hình.
mr.b

17
Ngoài ra, đừng quên chmod 600 trên .ssh / config
Sven

Lưu ý rằng nếu có nhiều tên máy chủ mà máy chủ có thể truy cập được bằng (hoặc nếu bạn muốn có cùng tên người dùng mặc định cho nhiều máy chủ), bạn nên thay đổi dòng đầu tiên thành Host server1.local example.net *.example.orgvà loại bỏ HostNamedòng.
Lèse majesté

44

Nếu bạn chỉ muốn ssh một vài lần, chẳng hạn như trên máy tính mượn hoặc dùng chung, hãy thử:

ssh buck@hostname

hoặc là

ssh -l buck hostname

1
Cảm ơn, nhưng tôi đã quen với điều này. Dường như không cần thiết để chỉ định buck @ host khi nó luôn là buck @ host. Tôi đang cố gắng tìm một phương thức để thể hiện thông tin này trong một tệp cấu hình.
bukzor

1
Bạn đã xem xét một cái gì đó đơn giản như bí danh sshhostname = 'ssh buck @ hostname' chưa?
gpojd

Vâng tôi có. Câu trả lời của Learath2 chính xác là những gì tôi đang tìm kiếm. Tôi có thể kiểm tra điều này vào kho lưu trữ dotfiles của mình và không phải lo lắng về nó nữa.
bukzor

Tôi lấy gốc bí danh vì tôi kết nối với máy cho các khách hàng khác nhau, trong đó tên người dùng của tôi khác nhau trong mỗi môi trường máy khách. Một cách tiếp cận khác mà tôi cho là sẽ có các môi trường shell cục bộ khác nhau để đặt ssh và các cài đặt liên quan cho mỗi máy khách. Hoặc một VM cho mỗi khách hàng.
Nick Spacek 15/03/13

6

man ssh_config nói

Người sử dụng

Chỉ định người dùng đăng nhập như. Điều này có thể hữu ích khi một tên người dùng khác được sử dụng trên các máy khác nhau. Điều này tiết kiệm những rắc rối của việc phải nhớ cung cấp tên người dùng trên dòng lệnh.


1
"Danh tính" trong trường hợp này tương đương với cách sử dụng "mật khẩu" thông thường. Đây là dữ liệu xác thực bạn, nhưng không giúp chỉ định người bạn đang cố xác thực .
bukzor

Giáo sư. Có một thiết lập người dùng ở đó là tốt.
nes1983

0

Bạn có thể sử dụng một phím tắt. Tạo một tập tin .bashrc trong thư mục chính của bạn. Trong đó, bạn có thể thêm vào như sau:

alias sshb="ssh buck@host"

Để cung cấp bí danh trong thiết bị đầu cuối của bạn, bạn có thể đóng và mở thiết bị đầu cuối của mình hoặc chạy

source ~/.bashrc

Sau đó, bạn có thể kết nối bằng cách chỉ cần gõ vào:

sshb

1
Điều này rất tốt cho một máy chủ cụ thể, nhưng khi tôi liên tục kết nối với hàng nghìn tỷ máy chủ khác nhau, điều này khá vô dụng. Thay vì thiết lập .ssh/configvới các cài đặt thích hợp. Tôi đã tìm kiếm *wildcare (và học được rằng nó nên ở dưới cùng).
mazunki

0

Có một viên ngọc Ruby giao diện sshtập tin cấu hình của bạn được gọi sshez.

Tất cả bạn phải làm là sshez <alias> username@example.com -p <port-number>, và sau đó bạn có thể kết nối bằng cách sử dụng ssh <alias>. Nó cũng hữu ích vì bạn có thể liệt kê các bí danh của mình bằng cách sử dụng sshez listvà có thể dễ dàng xóa chúng bằng cách sử dụng sshez remove alias.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.