Nếu bạn chỉ cần để dịch vụ hoạt động trong khi bạn đăng nhập, hãy kết nối với dịch vụ ssh-agent
mà bạn bắt đầu với phiên của mình. Cách dễ nhất để làm điều này là sử dụng một đường dẫn cố định cho ổ cắm tác nhân. Đặt SSH_AUTH_SOCK
biến môi trường thành một cái gì đó giống như /home/romeovs/.ssh/darkstar.agent.socket
cả trong công việc systemd và trong của bạn .profile
. Lưu ý rằng nếu bản phân phối của bạn bắt đầu một ssh-agent
quy trình cho bạn, bạn có thể cần phải giết nó hoặc để nó không được sử dụng và thay thế nó bằng chính bản phân phối của bạn. Nếu SSH_AUTH_SOCK
biến có trong môi trường, ssh-agent
sử dụng đường dẫn chứa trong ổ cắm của nó. Sau đó, khi bạn đăng nhập, hãy chạy ssh-add
trên khóa riêng của bạn và công việc sẽ có thể sử dụng nó.
Nếu bạn cần phải hoàn thành công việc mọi lúc, tôi khuyên bạn nên tạo một khóa mật khẩu cụ thể cho mục đích đó ( ssh-keygen -t rsa -f ~/.ssh/smd.id_rsa -N ''
) và chỉ cho phép nó chạy một lệnh cụ thể trên máy chủ bằng cách sử dụng một command=
và các from=
hạn chế trong ~/.ssh/authorized_keys
tệp trên máy chủ. Các from=
tùy chọn phương tiện rằng chìa khóa chỉ có giá trị cho những nỗ lực đăng nhập từ một host cụ thể và command=
xác định một lệnh sẽ được thực thi thay vì lệnh theo quy định của khách hàng.
ssh-rsa AAAA…== romeovs@darkstar no-agent-forwarding no-port-forwarding no-x11-forwarding from="romeovs@darkstar.example.com" command="somecommand --foo"
Lệnh được thực thi bởi shell đăng nhập của bạn. Nếu bạn cần truyền tham số cho lệnh đó, bạn có hai lựa chọn:
- Lệnh ban đầu được cố gắng bởi máy khách nằm trong
SSH_ORIGINAL_COMMAND
biến môi trường. Coi chừng trích dẫn các vấn đề nếu bạn cố gắng phân tích nó.
- Một vài biến môi trường được thông qua bởi khách hàng. Bộ chính xác phụ thuộc vào cấu hình máy chủ (
AcceptEnv
chỉ thị trong sshd_config
tệp).