设置SVN忽略文件和目录(文件夹)

在多数项目中你总会有文件和目录不需要进行版本控制。这可能包括一些由编译器生成的文件,*.obj,*.lst,或许是一个用于存放可执行程序的输出文件夹。只要你提交修改,TortoiseSVN 就会在提交对话框的文件列表中显示出未版本控制文件。当然你可以关闭这个显示,不过你可能会忘记添加新的源文件。

最好的避免类似问题的方法是添加参考文件到该项目的忽略列表。这样他们就永远不会出现在提交对话框中,而真正的未版本控制文件则仍然列出。

1.方法一

在 Eclipse 中点击菜单 window --> Preferences --> Team --> Ignored Resources

点击 Add Pattern… 按钮添加你要忽略的文件或目录。

2.方法二

在Eclipse的导航视图中,选中尚未加入版本控制的文件或目录,右键 --> Team --> 添加至SVN:ignore


3.方法三

在资源管理器中,右键一个未加入版本控制文件或目录,并从弹出菜单选择TortoiseSVN →Add to Ignore List,会出现一个子菜单,允许你仅选择该文件或者所有具有相同后缀的文件。

如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN →从忽略列表删除。

4.方法四

另一个忽略文件的方法是添加这些文件到globalignore list .他们最大的不同是全局忽略列表是一个客户端特性。它会作用到所有的(all)subversion 项目。但只能在pc客户端使用。

Subversion 的忽略模式使用了文件匹配,一种原先在Unix系统中使用meta字符作为通配符的技术。下面的字符有着特殊的意思:

  • * 匹配任何字符串,包括空串(没有字符)
  • ? 匹配任何单字符
  • [...] 匹配任何单在方括号[]内的单字符,在方括号内,一对字符被“-”分隔,匹配任何词汇表(lexically)上在他们中间的字符。例如[AGm-p]匹配任何单个的A,G,m,n,o或者p。

模式匹配是大小写敏感的,这在Windows 平台下会出问题。你可以使用成对的字符来强制忽略大小写。例如,忽略不记 *.tmp 的大小写,那么你可以使用像 *.[Tt][Mm][Pp] 这样的模式。

如果你想要一个官方定义的匹配规则。你可以在关于shell命令行语言的IEEE规范PatternMatching Notation中找到。


<think>好的,用户遇到了SSH连接时出现“Permission denied (publickey)”错误,想解决这个问题。我需要结合之前提供的引用内容之前的回答来帮助他。首先,用户提到的引用1、2、3都涉及SSH公钥认证的问题,特别是权限设置、密钥配置服务器端配置的问题。 首先,用户之前的问题是关于Git Clone的权限被拒绝,现在转向SSH连接的问题,但两者都涉及公钥认证。需要确保用户正确生成了SSH密钥对,并将公钥添加到服务器的authorized_keys文件中。引用3提到将公钥添加到该文件设置权限为600,这可能是一个关键点。 然后,引用12讨论了权限问题,比如私钥文件权限是否正确,服务器配置是否允许公钥认证。用户可能在生成密钥后没有正确设置权限,或者服务器的sshd配置有问题,比如PubkeyAuthentication被禁用。 接下来,用户可能需要检查本地服务器端的SSH配置。例如,确保私钥的权限是600,路径正确,以及服务器上的authorized_keys文件权限正确。同时,可能需要检查SSH守护进程的日志,如/var/log/auth.log,来查看详细的错误信息。 此外,用户可能在使用ssh命令时没有指定正确的私钥文件,或者使用了错误的用户名。例如,引用2中的例子显示用户可能混淆了本地服务器端的用户名,导致认证失败。需要提醒用户使用正确的用户名-i参数指定私钥路径。 还要考虑服务器是否启用了密码认证,虽然错误是publickey,但有时候服务器配置可能完全禁用密码,导致其他问题。不过根据错误提示,主要问题还是在公钥认证上。 总结步骤应该是:检查密钥生成、权限设置、服务器端authorized_keys配置、sshd_config设置,以及查看日志文件。此外,测试连接时使用-vvv参数获取详细输出,帮助诊断问题。 可能需要提醒用户注意文件路径是否正确,比如私钥是否在~/.ssh/目录下,文件名是否正确,比如id_rsa或自定义名称。如果用户使用了非默认名称,需要用-i选项指定。 最后,确保用户了解每一步的操作,避免因权限设置不当导致的问题,比如chmod 600对私钥authorized_keys文件的重要性。</think>--- ### 分步解决 SSH "Permission denied (publickey)" 错误 #### **一、核心原因定位** 此错误表示客户端提供的SSH公钥与服务器端配置不匹配,或密钥权限/路径错误。关键检查点: 1. **密钥文件权限**:私钥/公钥文件权限过宽(必须为`600`) 2. **密钥路径错误**:SSH默认读取`~/.ssh/id_rsa`,自定义路径需显式指定 3. **服务器配置**:未正确加载公钥或禁用公钥认证 4. **用户权限**:服务器用户目录权限过宽(如`.ssh`目录权限非`700`) --- #### **二、完整解决方案** ##### **1. 检查本地密钥权限与路径** - **确认私钥存在且权限正确**: ```bash # 检查私钥路径(默认 ~/.ssh/id_rsa) ls -al ~/.ssh/id_rsa # 修正权限(必须600) chmod 600 ~/.ssh/id_rsa ``` > ✅ **原理**:SSH拒绝权限过宽的私钥(如`644`)以避免安全风险[^1] - **指定自定义密钥路径**: ```bash ssh -i /path/to/your_private_key user@example.com ``` ##### **2. 验证公钥是否正确上传至服务器** - **手动追加公钥到`authorized_keys`**(需服务器权限): ```bash # 在服务器执行(确保 ~/.ssh 目录权限为700) mkdir -p ~/.ssh chmod 700 ~/.ssh echo "你的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # 必须设为600[^3] ``` - **检查公钥格式**: 确保`authorized_keys`中公钥为单行,格式如: ```text ssh-rsa AAAAB3NzaC1yc2E... user@host ``` ##### **3. 检查服务器SSH服务配置** - **确认`sshd_config`启用公钥认证**: ```bash # 在服务器执行 sudo nano /etc/ssh/sshd_config ``` 检查以下参数: ```ini PubkeyAuthentication yes # 必须为yes AuthorizedKeysFile .ssh/authorized_keys # 路径正确 PasswordAuthentication no # 若禁用密码登录需额外注意 ``` ```bash sudo systemctl restart sshd # 修改后重启服务 ``` ##### **4. 调试连接过程** - **使用`-vvv`参数查看详细日志**: ```bash ssh -vvv -i ~/.ssh/id_rsa user@example.com ``` - 关注日志中的`Offering public key``Authentication refused`字段 - 示例关键错误: ```log debug1: Offering public key: ~/.ssh/id_rsa RSA SHA256:xxx explicit debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply debug3: receive packet: type 51 # 51表示服务器拒绝密钥 ``` ##### **5. 检查服务器用户目录权限** - **用户主目录权限不能为`777`**: ```bash # 在服务器执行 chmod 755 ~ # 主目录权限推荐755 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` > ✅ **原理**:SSH拒绝主目录权限过宽的账户登录(如`777`)[^2] --- #### **三、场景对照表** | 错误现象 | 解决方案 | |------------------------------------------|-------------------------------------| | `Permission denied (publickey)` + 无日志 | 检查`sshd_config`是否启用公钥认证 | | 日志显示`key type mismatch` | 生成新密钥对(如ED25519替代RSA) | | `Too many authentication failures` | 使用`ssh -o IdentitiesOnly=yes` 显式指定密钥 | --- #### **四、验证与测试** 1. **本地密钥有效性测试**: ```bash ssh-keygen -y -f ~/.ssh/id_rsa # 成功则显示公钥 ``` 2. **服务器端日志排查**: ```bash tail -f /var/log/auth.log # Ubuntu/Debian tail -f /var/log/secure # CentOS/RHEL ``` 查找类似记录: ```log Accepted publickey for user from 192.168.1.1 port 1234 ssh2: RSA SHA256:xxx ``` --- #### **五、高级场景处理** - **使用代理跳转时密钥传递**: ```bash ssh -A -J jump_user@jump_host target_user@target_host ``` - **多密钥管理**: 在`~/.ssh/config`中配置别名: ```ini Host example-server HostName example.com User user IdentityFile ~/.ssh/custom_key IdentitiesOnly yes # 强制仅使用指定密钥 ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值