คำถามติดแท็ก ssh

SSH (Secure SHell) เป็นโปรโตคอลสำหรับการรันคำสั่งอย่างปลอดภัยบนคอมพิวเตอร์ระยะไกล ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการกำหนดค่าการใช้และการแก้ไขปัญหาไคลเอ็นต์และซอฟต์แวร์เซิร์ฟเวอร์ SSH

1
พร็อกซี SSH ถุงเท้าตามคำขอผ่านหน่วยผู้ใช้ systemd พร้อมการเปิดใช้งานซ็อกเก็ตไม่รีสตาร์ทตามที่ต้องการ
ในการเข้าถึงเครือข่ายที่แยกผมใช้SSH -D ถุงเท้า พร็อกซี่ เพื่อหลีกเลี่ยงการต้องพิมพ์รายละเอียดทุกครั้งที่ฉันเพิ่มลงใน~/.ssh/config: $ awk '/Host socks-proxy/' RS= ~/.ssh/config Host socks-proxy Hostname pcit BatchMode yes RequestTTY no Compression yes DynamicForward localhost:9118 จากนั้นฉันสร้างไฟล์ข้อกำหนดหน่วยบริการผู้ใช้ systemd : $ cat ~/.config/systemd/user/SocksProxy.service [Unit] Description=SocksProxy Over Bridge Host [Service] ExecStart=/usr/bin/ssh -Nk socks-proxy [Install] WantedBy=default.target ฉันปล่อยให้ daemon โหลดข้อกำหนดบริการใหม่เปิดใช้บริการใหม่เริ่มตรวจสอบสถานะและตรวจสอบว่ากำลังฟังอยู่: $ systemctl --user daemon-reload $ systemctl --user …

2
วิธีถอดรหัสชื่อโฮสต์ของ. ssh / known_hosts ด้วยรายชื่อโฮสต์
ฉันพยายามที่จะหาสคริปต์ไปถอดรหัส (unhash) ชื่อโฮสต์ SSH ในแฟ้ม known_hosts โดยผ่านรายการ hostnamses ดังนั้นการย้อนกลับของ : ssh-keygen -H -f known_hosts หรือทำเช่นเดียวกันหากตั้งค่า ssh HashKnownHosts เป็น No: ssh-keygen -R know-host.com -f known_hosts ssh-keyscan -H know-host.com >> known_hosts แต่ไม่ต้องดาวน์โหลดคีย์โฮสต์อีกครั้ง (เกิดจาก ssh-keyscan) สิ่งที่ต้องการ: ssh-keygen --decrypt -f known_hosts --hostnames hostnames.txt โดยที่ hostnames.txt มีรายการชื่อโฮสต์

6
คัดลอกกุญแจสาธารณะ ssh ไปยังโฮสต์ Linux หลายตัว
ฉันพยายามคัดลอก. ssh / id_rsa.pub จากเซิร์ฟเวอร์กลางของเราไปยังเซิร์ฟเวอร์หลายเครื่อง ฉันมีสคริปต์ต่อไปนี้ซึ่งฉันมักจะใช้เพื่อผลักดันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ที่แตกต่างกัน #!/bin/bash for ip in $(<IPs); do # Tell the remote server to start bash, but since its # standard input is not a TTY it will start bash in # noninteractive mode. ssh -q "$ip" bash <<-'EOF' EOF done แต่ในกรณีนี้ฉันต้องกำหนดคีย์สาธารณะบนเซิร์ฟเวอร์ภายในแล้วเพิ่มไปยังเซิร์ฟเวอร์หลายเครื่อง มีวิธีโดยใช้สคริปต์เอกสารข้างต้นที่นี่เพื่อดำเนินการดังต่อไปนี้ cat .ssh/id_rsa.pub |ssh …
14 shell-script  ssh 

2
ssh พูดว่า: คุณไม่มีอยู่ไปให้พ้น!
บางครั้งเมื่อฉันพยายามsshเซิร์ฟเวอร์ฉันได้รับข้อความต่อไปนี้: You don't exist, go away! ฉันไม่เคยเห็นสิ่งนี้มาก่อนsshเลย สิ่งนี้หมายความว่า? มีปัญหากับ ssh หรืออย่างอื่นหรือไม่? ข้อมูลเพิ่มเติม: ssh -q -i private_key root@192.168.0.11 "command" เซิร์ฟเวอร์เป็น SUSE Linux ฉันรันsshคำสั่งแบบวนซ้ำ 10 ครั้งและลองเพียง 1 หรือ 2 ครั้งเท่านั้นจะส่งผลให้ข้อความ Go away
14 ssh 

5
วิธีใช้การตั้งค่า `~ / .ssh / config` สำหรับแต่ละเซิร์ฟเวอร์โดยใช้ 'rsync'
ตอนนี้ฉันใช้ rsync พร้อม-e 'ssh -p 10022'ตัวเลือกเพื่อระบุพอร์ต ฉันมีการตั้งค่า SSH ~/.ssh/configแล้วใน Host myvps HostName example.com User ironsand Port 10022 ฉันสามารถใช้ config นี้จาก rsync ได้อย่างง่ายดายหรือไม่? หรือฉันสามารถสร้าง~/.rsyncและตั้งค่าพอร์ตเริ่มต้นสำหรับเซิร์ฟเวอร์ระบุได้หรือไม่?
14 ssh  rsync 

5
SSH ไม่ทำงานจากคอมพิวเตอร์เครื่องเดียว
ฉันสามารถเชื่อมต่อจากคอมพิวเตอร์ทุกเครื่องบน LAN เช่นเดียวกับภายนอก มันเชื่อมต่อได้ดีกับเครื่องอื่น ๆ ที่ใช้ SSHD เมื่อพยายาม ssh ด้วยคำฟุ่มเฟื่อยฉันได้รับการอ่านต่อไปนี้: $ ssh -vvv 192.168.1.9 OpenSSH_6.2p2, OpenSSL 1.0.1e 11 Feb 2013 debug2: ssh_connect: needpriv 0 debug1: Connecting to 192.168.1.9 [192.168.1.9] port 22. debug1: Connection established. debug1: identity file /home/Steven/.ssh/id_rsa type -1 debug1: identity file /home/Steven/.ssh/id_rsa-cert type -1 debug3: Incorrect RSA1 identifier …
14 ubuntu  ssh 

4
Pseudo-terminal จะไม่ถูกจัดสรรเนื่องจาก stdin ไม่ใช่เทอร์มินัล
ฉันกำลังพยายามตั้งค่า SSH อัตโนมัติโดยการข้ามเซิร์ฟเวอร์ที่ไม่มี nc ใช้งานได้จากบรรทัดคำสั่ง: ssh -A gateway ssh steve@target (ฉันได้เพิ่มกุญแจสาธารณะของฉันไปยังตัวแทน SSH) อย่างไรก็ตามการเพิ่มลงใน ~ / .ssh / config ไม่ได้: Host target User steveb ProxyCommand ssh -A gateway ssh steve@targetip $ ssh target Pseudo-terminal will not be allocated because stdin is not a terminal. ^CKilled by signal 2. ความพยายามในการบังคับใช้ปัญหาด้วยความ-tสนุกสนาน แต่ไม่ช่วยเหลือ ProxyCommand …
14 ssh  rhel  configuration  tty 

4
กลุ่มแตกต่างจากคนในพื้นที่เมื่อเข้าสู่ระบบจากระยะไกล
เราจัดเก็บผู้ใช้ของเราใน LDAP พร้อมกับกลุ่มที่มีความหมายในระบบที่แตกต่างกัน (บทบาทขององค์กรรวมถึงwheel) นอกจากนี้ยังมีกลุ่มท้องถิ่นไปยังเวิร์กสเตชันเช่นaudioหรือvideoที่ไม่พึงประสงค์ที่จะใส่ลงใน LDAP ตอนนี้ถ้าฉันเข้าสู่ระบบในท้องถิ่นฉันจะได้รับกลุ่มท้องถิ่นเหล่านั้น แต่ถ้าฉันเข้าสู่ระบบผ่าน SSH ในเครื่องเดียวกันฉันขาดพวกเขา แน่นอนว่าพวกเขาจะกลับมาถ้าฉันใช้suตรงหลังจากนั้น ฉันอาจผิดทาง แต่สงสัยว่า PAM รายการที่เกี่ยวข้องจาก nsswitch.conf passwd: compat ldap shadow: compat ldap group: compat ldap สำหรับ pam ให้ตรวจสอบความถูกต้องเสมอ แต่บรรทัดอื่น ๆ จะเหมือนกัน /etc/pam.d/sshd auth include system-remote-login /etc/pam.d/system-remote-login(เหมือนsystem-local-loginฉันอาจเพิ่ม) auth include system-login /etc/pam.d/system-login auth required pam_tally2.so onerr=succeed auth required pam_shells.so auth required pam_nologin.so …

3
การเพิ่มผู้ใช้ที่สามารถเรียกใช้สคริปต์จากระยะไกลเท่านั้น
ฉันต้องการสร้างผู้ใช้ที่สามารถทำได้เพียงสิ่งเดียวเท่านั้น: ผ่าน ssh ระบุสคริปต์ (และอาร์กิวเมนต์บรรทัดคำสั่งของสคริปต์) ที่อยู่ในโฟลเดอร์เดียว (สำหรับวัตถุประสงค์ของคำถามนี้ให้เราเรียกมัน/local/remote_only_scripts/foo) และให้สคริปต์ดำเนินการ แล้วส่งคืนเอาต์พุต เพื่อให้ชัดเจนบางตัวอย่างของสิ่งที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้: เข้าสู่ระบบในบัญชี /bin/loginการประยุกต์ใช้เข้าสู่ระบบเป็น ไม่ใช่สคริปต์ใน/local/remote_only_scripts/fooโฟลเดอร์ดังนั้นจึงไม่ควรเรียกใช้โดยผู้ใช้ ลงชื่อเข้าใช้บัญชีจากระยะไกล ล็อกอินอีกครั้ง (นั่นคือสิ่งที่เรียกว่าโดย ssh?) ไม่ใช่สคริปต์ในโฟลเดอร์ที่เกี่ยวข้อง แสดงรายการเนื้อหาของไดเรกทอรี LS /bin/lsอยู่ใน ไม่ใช่สคริปต์ในไดเรกทอรีที่เหมาะสม แก้ไขไฟล์ในไดเรกทอรีนั้น emacs, vi, แก้ไขอื่น ๆ ส่วนใหญ่ไม่ได้เป็นสคริปต์ใน directoy นั้น ดูเนื้อหาของไฟล์ในไดเรกทอรีนั้น ดำเนินการไฟล์ในไดเรกทอรีนั้นว่าเขาไม่ได้รับอนุญาตให้ดำเนินการ โปรดทราบว่านี่เป็นตัวอย่างที่มีการดำเนินการอื่น ๆ อีกมากมายที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้ ในการพิจารณาการกระทำให้ถามว่า "สคริปต์นี้ใช้งาน/local/remote_only_scripts/fooหรือไม่" ถ้าคำตอบคือไม่มีผู้ใช้ไม่ควรทำ หากคำตอบคือใช่ผู้ใช้ควรจะสามารถทำได้ PS: ให้ฉันอธิบายสิ่งที่ฉันหมายถึงโดย "การเพิ่มผู้ใช้" ฉันไม่ได้หมายถึงการเพิ่มผู้ใช้ไปยังระบบย่อย ssh แต่ฉันหมายถึงการเพิ่มผู้ใช้ไปยังระบบคอมพิวเตอร์ ตัวอย่างเช่นฉันมีระบบที่ใช้เดเบียนเสถียรเรียกมันตามที่อยู่ของมัน www.hg.bar.com ฉันต้องการที่จะเพิ่มผู้ใช้ (ผ่าน kuser …

4
วิธีกำหนดค่า SVN / SSH ด้วย SSH บนพอร์ตที่ไม่ใช่มาตรฐาน
ฉันได้กำหนดค่า SSH ให้เป็นพอร์ต 20000 เมื่อฉันลอง: svn co svn+ssh://server.com:20000/home/svn/proj1 proj1 --username jm ฉันเข้าใจ svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. svn: Network connection closed unexpectedly ฉันคิดว่าฉันต้องบอก SVN ให้ใช้พอร์ต 20,000 ด้วย ฉันใช้ Ubuntu 11.10
14 ssh  tcp  subversion 

1
จะรับไฟล์ไปยังเครื่องระยะไกลผ่าน SSH ได้อย่างไร?
ฉันต้องการท่อโดยทั่วไปwgetคำสั่งไปยังไฟล์บนเซิร์ฟเวอร์ระยะไกลผ่าน SSH ฉันจะทำสิ่งนี้ได้อย่างไร ฉันรู้ว่าฉันสามารถsshเข้าไปในเซิร์ฟเวอร์และดาวน์โหลดไฟล์ได้ แต่ฉันต้องการใช้เครื่องในท้องถิ่นเพื่อดาวน์โหลดและส่ง
14 ssh  wget 

3
ฉันสามารถเชื่อมต่อหรือดูเซสชัน ssh ที่ถูกยกเลิกได้หรือไม่
ฉันมีอินสแตนซ์เสมือนของ redhat ทำงานที่ฉันสามารถsshจากโฮสต์ใด ๆ ในเครือข่ายขององค์กร sshเซสชั่นของฉันถูกลดลงในขณะที่เรียกใช้สคริปต์บางอย่างที่อาจหรือไม่ทำให้ฉันตัดการเชื่อมต่อ whoคำสั่งในประเทศยังคงแสดงการเชื่อมต่อลดลง เชื่อมต่อใหม่ด้วยsshเริ่มเซสชันใหม่ทั้งหมด มีวิธีการเชื่อมต่อกับเซสชันเดิมหรือไม่? ถ้าฉันไม่ฆ่ามัน? ฉันมีสิทธิ์เข้าถึงรูทและร่างกาย ฉันไม่ได้ใช้หน้าจอในเซสชันดั้งเดิม
14 ssh 


4
รหัสผ่าน ssh สำหรับชื่อผู้ใช้อื่นหรือไม่
ฉันต้องการทำการเชื่อมต่อ ssh ผ่านรหัสผ่านสำหรับโครงการการโค่นล้ม ตอนนี้ฉันกำลังใช้ ssh + svn และมันก็น่ารำคาญนิดหน่อยเพราะฉันต้องพิมพ์รหัสผ่านทุกครั้งที่ฉันต้องการทำธุรกรรมกับเซิร์ฟเวอร์ ฉันพบบทเรียนมากมายบนเว็บเกี่ยวกับวิธีสร้างคีย์สำหรับ ssh แบบไม่มีรหัสผ่าน แต่พวกเขาทั้งหมดคิดว่าฉันใช้ชื่อผู้ใช้เดียวกันกับระบบรีโมตเหมือนกับฉันเป็นระบบโฮมของฉัน อย่างไรก็ตามชื่อผู้ใช้ที่ฉันใช้สำหรับ ssh + svn นั้นแตกต่างจากชื่อบัญชีผู้ใช้ในระบบที่ฉันใช้งานอยู่ ฉันจะตั้งค่านี้อย่างถูกต้องได้อย่างไร ฉันไม่มีโชคกับการเปลี่ยนชื่อในไฟล์คีย์

2
ทำไม sudo -i ไม่ได้ตั้ง XDG_RUNTIME_DIR สำหรับผู้ใช้เป้าหมาย?
XDG_RUNTIME_DIRจำเป็นสำหรับsystemctl --userการทำงาน ฉันได้เซ็ตอัพเซิร์ฟเวอร์ Ubuntu 16.04 เพื่อเรียกใช้เซสชันผู้ใช้ systemd ตอนนี้เมื่อพยายามที่จะจัดการพวกเขาฉันพบว่าเมื่อเปลี่ยนผู้ใช้ผ่านsudo -u $user -iหรือแม้กระทั่งsu - $userสภาพแวดล้อมไม่ได้XDG_RUNTIME_DIRตั้งค่าการป้องกันsystemctl --userจากการทำงาน อย่างไรก็ตามเมื่อฉันsshเข้าสู่ผู้ใช้นั้นจะถูกตั้งค่าอย่างถูกต้อง หากฉันเข้าใจเอกสารอย่างถูกต้องควรตั้งค่านี้libpam-systemdเมื่อสร้างเซสชันผู้ใช้ ชิ้นส่วนของผู้ใช้เริ่มต้นอย่างถูกต้องเนื่องจากมีไดเรกทอรีที่XDG_RUNTIME_DIRควรชี้ ( /run/users/$uid) อยู่ ฉันลังเลที่จะใส่รหัสลงใน.bash_profileเพราะว่าดูเหมือนว่าแฮ็ก (แม้ว่าจะใช้งานได้) เมื่อแพมควรดูแลมัน ฉันสามารถของหลักสูตรเพิ่มXDG_RUNTIME_DIRไปenv_keepในsudoersแต่ที่เพิ่งจะรักษาสภาพแวดล้อมของผู้ sudoing ซึ่งไม่ได้เป็นสิ่งที่ฉันต้องการ ฉันต้องการสภาพแวดล้อมของผู้ใช้เป้าหมาย สิ่งที่ฉันสงสัยจริงๆคือทำไมเซสชั่นนี้ถูกตั้งค่าอย่างถูกต้องด้วยsshแต่ไม่ใช่suหรือsudo -i?
14 ssh  systemd  sudo  pam 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.