먼저 SSH 에이전트 전달에 관해 다른 질문이 많이 있다는 점을 지적하고 싶습니다. 사람들은 프록시 전달 작업을 수행하는 방법이나 이를 안전하게 구성하는 방법을 알고 싶어합니다. 하지만 반대의 문제가 있습니다. 안정적으로 할 수 없는 것 같습니다.장애를 입히다그것. 그럼 시작해 보겠습니다.
나는 이 글을 쓰는 시점에서 최신이고 기본적으로 재고가 있는 데비안 불스아이 시스템을 실행하고 있습니다. 이 시스템에서 SSH 데몬은 다음 구성으로 실행됩니다 /etc/ssh/sshd_config
.
AcceptEnv LANG LC_*
AllowAgentForwarding no
AllowTcpForwarding no
AllowStreamLocalForwarding no
ChallengeResponseAuthentication no
Ciphers [email protected],[email protected]
Compression no
DebianBanner no
HostKeyAlgorithms rsa-sha2-512,ssh-ed25519
KbdInteractiveAuthentication no
KexAlgorithms curve25519-sha256,[email protected],diffie-hellman-group-exchange-sha256
ListenAddress aaa.bbb.ccc.ddd
LoginGraceTime 20
MACs [email protected],[email protected]
PasswordAuthentication no
PermitUserRC no
Protocol 2
# The first of the following version is the right one.
# However, for brain-dead WinSCP, we need the second version.
#PubkeyAcceptedKeyTypes rsa-sha2-512,rsa-sha2-256,ssh-ed25519
PubkeyAcceptedKeyTypes rsa-sha2-512,rsa-sha2-256,ssh-ed25519,ssh-rsa
RekeyLimit 100M 20m
Subsystem sftp /usr/lib/openssh/sftp-server
Match user copyremote
ChrootDirectory /backup
ForceCommand /usr/lib/openssh/sftp-server
이것은충분히구성 파일. 수신 대기하는 IP 주소를 제외하고는 아무것도 제거되거나 난독화되지 않습니다. 또한 SSH 데몬에 대한 추가 구성 조각은 다른 곳에 포함되어 있지 않습니다.
기본적으로 이 구성은 프록시 전달 기능과 같이 필요하지 않은 모든 기능을 끄려고 합니다(참고: 이 구성 파일에는 기본적으로 대부분의 기능을 끄는 줄을 추가하지 않았습니다(다음에 따름). 설명서)). 또한 인증은 전적으로 공개 키를 기반으로 한다는 점을 알 수 있습니다.
어느 날 저는 copyremote
사용자 및 SFTP 하위 시스템의 문제를 조사하고 있었기 때문에 이를 클라이언트 시스템에 -v
매개변수로 제공했습니다 . sftp
결과는 다음과 같습니다(관련 부분만 표시됨).
root@morn ~/scripts # sftp -v -i ~/.ssh/id_rsa_backup_user [email protected]:/backup/achilles.bsdtar.gz .
OpenSSH_8.4p1 Debian-5+deb11u1, OpenSSL 1.1.1n 15 Mar 2022
[...]
debug1: Remote: /home/usr/copyremote/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/usr/copyremote/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
[...]
이제 이것은 끔찍합니다. 서버의 시스템 전체 구성 파일에서 전역적으로 프록시 전달을 해제했다고 생각했습니다. 그러나 출력을 이해하는 한 제공됩니다.
프록시 전달(및 서버에서 제공하지 않기를 원하는 기타 기능)을 끄는 방법을 설명해 줄 수 있는 사람이 있습니까?세계적인?
이러한 기능은 authorized_keys
파일에서 명시적으로 비활성화할 수 있지만, 사용자가 여러 명이고 각 사용자가 여러 공개 키를 허용하는 경우 오류가 발생하기 쉽고 작업량이 많기 때문에 비활성화하는 것이 좋습니다. 한 곳에서.
authorized_keys
다음은 서버에 있는 사용자 파일 입니다 .copyremote
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDs6ku+LXaUBs....JFchhaoQ== me@client
거기에는 특별한 것이 없습니다. 프록시 전달이 명시적으로 허용되지 않는다는 점은 주목할 가치가 있습니다. 그렇다면 시스템 전체 구성의 설정을 적용하지 않는 이유는 무엇입니까?
PS SSH/SFTP chroot가 우리가 기대하는 보안을 제공하지 않는다는 것을 알고 있습니다. 문제를 완화하기 위해 서버에 추가 단계를 구현했으므로 여기서는 논의할 필요가 없습니다. :-)
답변1
프록시 전달이 전역적으로 활성화된 경우(그렇지 않음) 프록시 전달에 키(기본값)를 사용할 수 있다고 말합니다.
로그 항목에는 authorized_keys
파일 구문 분석 결과만 표시됩니다. 이는 기본적으로 no-agent-forwarding
해당 항목에서 플래그를 찾을 수 없음을 의미합니다. 이는 해당 지침을 전혀 반영하지 않습니다 AllowAgentForwarding no
.