是否可以选择将密码也与 sftp 放在一起?
linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/
Run Code Online (Sandbox Code Playgroud)
像这样
linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ -p PASSWORD?
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置 sftp,以便一些受信任的人可以访问/编辑/创建一些文件。我已将用户监禁到他们的主目录 (/home/name) 中,但遇到了问题。我希望他们也能够访问 VPS 的其他部分,因为它也是一个游戏服务器、网络主机等,我希望他们能够完全控制他们被监禁的目录之外的文件。
我尝试创建指向所需目录的符号链接 (ln -s),但没有按预期工作。我尝试 (cp -rl) 访问我想要访问的文件并且它起作用了 - 他们可以编辑其目录中的文件并更改存储在监狱外的文件。但是他们不能创建新文件(他们可以,但不会在监狱外更新)。我知道我可能没有以“正确的方式”这样做,但是我该怎么做才能做我想做的事?
我有一个 SFTP 服务器(openssh/sftp-server),我想为使用此服务的用户设置 umask 002。我尝试为每个用户设置 PAM (pam.d/common-session) 和 .profile,但没有运气。
使用 SSH 登录一切正常,但是当我尝试使用 SFTP(使用 gFTP)时,我设置了 022 umask。
我已经尝试为 sftp-server 使用一个包装器,它在调用 sftp-server 之前更改了 umask,但不走运。
有什么帮助吗?非常感谢!
我已经为这个问题寻找了一个可行的答案,大多数答案都包括关于为什么不这样做的建议。但是,这是场景,以及它的必要性:
我有一个控制台应用程序,在每个用户的 .profile 中,都有一个应用程序的启动命令,在启动它的命令之后,有一个“退出”命令,它将它们从系统中注销。我只希望他们能够通过它提供的界面访问这个控制台应用程序。启动时,应用程序向用户显示可通过应用程序访问的客户端列表,每个客户端都有自己的数据目录。用户只能访问他们需要访问的客户端。
现在问题来了:如果我给用户 SSH 访问权限,他们也将能够使用 SFTP 客户端登录,这将使他们能够直接访问应用程序的数据目录,这是非常不受欢迎的,因为这也会给他们访问他们不应该访问的数据目录。
在使用 telnet/FTP 组合时,这是一件非常简单的事情,但现在我想让用户从互联网上的任何地方访问,我一直无法找到一种方法将他们从 SFTP 中排除,而仍然允许他们访问可以运行应用程序的外壳。
我知道显式“协商”FTPS 是首选,因为它仍然使用标准端口 21 和该方法,但关于“隐式”非协商 FTPS 使用标准端口 990 与端口 22(我见过一些人描述),为什么非协商端口号的“标准”存在这种差异?
注意:我还注意到,如果我将 FileZilla 服务器配置为使用除默认端口 990 以外的任何其他端口,则它无法正常工作(从 FileZilla 客户端连接时)。
这个 Hacker News 故事是关于 FTP 的缺点。我可能设置 FTP 的唯一原因是它很容易。
我scp
已经知道并使用过,但有时我想与某人共享文件而不授予他们ssh
访问我的服务器的权限。我希望他们能够上传和下载文件,但没有别的,我想将它们限制在一个目录中。我还希望他们的连接像ssh
.
满足这些条件的 FTP 替代品有哪些?
我的大脑围绕着公钥和私钥的轴。当您在 Amazon 的 EC2 服务上创建云服务器(实例)然后想要通过 SSH 连接到它时,Amazon 要求您下载私有密钥来建立连接。公钥/私钥背后的想法不是表明亚马逊应该要求您下载公共密钥吗?
此外,如果我设置了一个 SFTP 服务器供客户使用,我应该在服务器上安装他们的密钥还是从服务器上给他们一个密钥?在这两种情况下,它应该是公钥还是私钥?
我知道有很多商业产品可以完成这项任务,但我正在寻找像SSHFS这样的东西,但适用于 Windows 系统,它是开源的。
WinSCP FAQ指向了KeepUpTODate功能,它可以用作一种解决方法,但它并不完全像映射驱动器,尽管它很接近。
我的问题是我需要设置几个变量,并且每次登录ssh shell时输出几行,同时我必须能够使用sftp通过Filezilla tarnsfer文件。
现在,根据http://www.openssh.org/faq.html 上的 openssh 常见问题解答,如果您的启动脚本回显任何类型的输出,它就会与 sftp 混淆。因此,它要么无限期地延迟,要么因“连接被服务器关闭,退出代码为 128”而出错。
我尝试过将 .bashrc 移动到 .bash_profile 或在 .bashrc 中使用以下代码的解决方案:
if [ "$TERM" != "dumb" ]
then
source .bashc_real
fi
Run Code Online (Sandbox Code Playgroud)
和:
if [ "$TERM" = "xterm" ]
then
source .bashc_real
fi
Run Code Online (Sandbox Code Playgroud)
但是,没有任何效果。我的 shell 终端是 bash,我使用 filezilla 连接到 sftp。
sftp ×10
ssh ×3
ftp ×2
linux ×2
security ×2
amazon-ec2 ×1
bashrc ×1
chroot ×1
cp ×1
jail ×1
networking ×1
private-key ×1
public-key ×1
scp ×1
ssl ×1
symlink ×1
windows ×1